cat est souvent utilisée pour afficher le contenu d'un fichier, ou pour connecter plusieurs fichiers pour l'affichage, ou pour lire le contenu à partir d'une entrée standard. et affichez-le. Il est souvent utilisé conjointement avec le symbole de redirection. cat est l'abréviation de Concaténer.
Linux a respectivement trois fichiers spéciaux
-L'entrée standard est STDIN, dans /dev/stdin
Se réfère généralement à la saisie au clavier, le numéro de code dans le shell est 0
-Sortie standard STDOUT, dans /dev/stdout
Fait généralement référence au terminal, qui est le moniteur. Le nom de code dans le shell est 1.
-Erreur standard STDERR, dans /dev/stderr
fait également référence au terminal, la différence est que le message d'erreur est envoyé ici
Le nom de code dans le shell est 2
语法:cat [选项] [文件]
option courte | option longue | signification |
---|---|---|
-A | --show-all | est égal à -vET |
- b | --number -nonblank | numéro de lignes de sortie non vides |
-e | égal à -vE | |
-E | --show-ends | afficher "$" à la fin de chaque ligne |
-n | --number | Numéroter toutes les lignes de la sortie |
-s | --squeeze-blank | Ne pas afficher plusieurs lignes vides |
-t | avec -vT Equivalent | |
-T | --show-tabs | affichera les caractères de tabulation comme ^I |
-v | --show-nonprinting | Utilisez ^ et M- guillemets, sauf LFD et Outside TAB |
输出文件内容 显示文件FILE的内容 cat FILE 显示文件FILE的内容加上行号,需要加上参数-n。行号从1开始。使用-n参数时,所有空行也会显示行号 cat -n FILE 忽略掉空行,用-b cat -b FILE 当遇到有连续两行以上的空白行,就代换为一行的空白行,可以使用-s参数 cat -s FILE 保存内容 将标准输入保存到文件FILE中,如果文件已经存在,则覆盖掉原来的 cat >FILE 将标准输入追加到文件FILE末尾 cat >>FILE 合并文件 将两个文件FILE1和FILE2的内容合并为一个文件FILE cat FILE1 FILE2 >FILE
Exemples d'utilisation de cat
从标准输入创建文件 [root@web setup]# code>cat >1.txt Hello Bash Linux 键盘(快捷键)Ctrl+D 保存文件 [root@web setup]# ls -l 1.txt -rw-r--r-- 1 root root 17 11-02 21:32 1.txt [root@web setup]# cat 1.txt 显示1.txt文本内容。标准输出 Hello Bash Linux [root@web setup]# cat <1.txt Hello Bash Linux [root@web setup]# 使用heredoc来生成文件 注意:粗体部分、here doc可以进行字符串替换 [root@web setup]# cat >2.txt <<EOF > Hello > Bash > Linux > PWD=$(pwd) > EOF [root@web setup]# ls -l 2.txt -rw-r--r-- 1 root root 33 11-02 21:35 2.txt [root@web setup]# cat 2.txt Hello Bash Linux PWD=/root/setup [root@web setup]# 输出行号 [root@web setup]# cat -n 1.txt 1 Hello 2 Bash 3 Linux [root@web setup]# nl 1.txt 1 Hello 2 Bash 3 Linux [root@web setup]# 在bash脚本中把文件内容加载到变量中 [root@web ~]# TEXT=$(cat .bash_profile) [root@web ~]# [root@web ~]# echo "$TEXT" # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH unset USERNAME [root@web ~]#
document heredoc
Dans les scripts shell Linux, nous voyons souvent des déclarations similaires à cat << Talisman, quel rôle joue-t-il ici ? EOF signifie "fin de fichier", indiquant la fin du caractère du texte.
<
EOF
- EOF n'a pas de signification particulière ici, vous pouvez utiliser FOE ou OOO, etc. (bien sûr, il n'est pas limité à trois caractères ou caractères majuscules).
- Vous pouvez remplacer EOF par autre chose, ce qui signifie transmettre le contenu au processus comme entrée standard
- En combinant ces deux identifiants, vous pouvez éviter d'utiliser la commande d'écho multi-ligne et obtenir des résultats de sortie multi-lignes.
Ensuite, décrivez brièvement plusieurs méthodes d'utilisation courantes et leurs fonctions :
- cat <
- cat >filename, créez un fichier et placez le standard Entrée et sortie vers le fichier de nom de fichier, utilisez ctrl+d comme entrée.
- cat >filename <
# cat >test.sh <#!/bin/bash > #you Shell script writes here. > EOF Autres façons d'écrire
1. Ajouter des fichiers
#cat <<EOF >>test.sh
cat <<EOF >>test.sh
2、追加文件,换一种写法
#cat >>test.sh <<EOF
3、EOF只是标识,不是固定的。这里的“HHH”就代替了“EOF”的功能。结果是相同的。
#cat <<HHH >iii.txt
> sdlkfjksl
> sdkjflk
> asdlfj
> HHH4、非脚本中。如果不是在脚本中,我们可以用Ctrl+D输出EOF的标识
> sdlkfjksl
#cat >iii.txt
2. Ajouter des fichiers, changer la façon d'écrire
# cat >>test.sh <<EOF
3. EOF est juste un logo, non corrigé. Le « HHH » remplace ici la fonction de « EOF ». Le résultat est le même.
#cat <<HHH >iii.txt