Bash
En utilisant chat
Recherche…
Syntaxe
- chat [OPTIONS] ... [FICHIER] ...
Paramètres
Option | Détails |
---|---|
-n | Imprimer les numéros de ligne |
-v | Afficher les caractères non imprimables à l'aide de la notation ^ et M, sauf LFD et TAB |
-T | Affiche les caractères de tabulation comme ^ I |
-E | Afficher les caractères de saut de ligne (LF) comme $ |
-e | Identique à -vE |
-b | Nombre de lignes de sortie non vides, remplace -n |
-UNE | équivalent à -vET |
-s | supprimer les lignes de sortie vides répétées, s se réfère à squeeze |
Remarques
cat
peut lire à la fois des fichiers et des entrées standard et les concaténer à la sortie standard
Impression du contenu d'un fichier
cat file.txt
imprimera le contenu d'un fichier.
Si le fichier contient des caractères non-ASCII, vous pouvez afficher ces caractères symboliquement avec cat -v
. Cela peut être très utile dans les situations où des caractères de contrôle seraient autrement invisibles.
cat -v unicode.txt
Très souvent, pour un usage interactif, il est préférable d'utiliser un téléavertisseur interactif less
ou more
. ( less
est beaucoup plus puissant que more
et il est conseillé d'utiliser less
souvent que more
.)
less file.txt
Transmettre le contenu d'un fichier en entrée à une commande. Une approche généralement considérée comme meilleure ( UUOC ) consiste à utiliser la redirection.
tr A-Z a-z <file.txt # as an alternative to cat file.txt | tr A-Z a-z
Si le contenu doit être répertorié en arrière à partir de sa fin, la commande tac
peut être utilisée:
tac file.txt
Si vous souhaitez imprimer le contenu avec des numéros de ligne, utilisez -n
avec cat
:
cat -n file.txt
Pour afficher le contenu d'un fichier sous une forme octet par octet sans ambiguïté, un vidage hexadécimal est la solution standard. Ceci est utile pour des extraits très courts d’un fichier, par exemple lorsque vous ne connaissez pas le codage précis. L'utilitaire de vidage hexadécimal standard est od -cH
, bien que la représentation soit légèrement lourde; les remplacements courants incluent xxd
et hexdump
.
$ printf 'Hëllö wörld' | xxd
0000000: 48c3 ab6c 6cc3 b620 77c3 b672 6c64 H..ll.. w..rld
Afficher les numéros de ligne avec sortie
Utilisez le drapeau --number
pour imprimer les numéros de ligne avant chaque ligne. Sinon, -n
fait la même chose.
$ cat --number file
1 line 1
2 line 2
3
4 line 4
5 line 5
Pour ignorer les lignes vides lors du comptage de lignes, utilisez --number-nonblank
, ou simplement -b
.
$ cat -b file
1 line 1
2 line 2
3 line 4
4 line 5
Lire depuis l'entrée standard
cat < file.txt
La sortie est identique à celle de cat file.txt
, mais elle lit le contenu du fichier à partir de l'entrée standard et non directement à partir du fichier.
printf "first line\nSecond line\n" | cat -n
La commande echo avant le |
génère deux lignes. La commande cat agit sur la sortie pour ajouter des numéros de ligne.
Concaténer des fichiers
C'est le but principal du cat
.
cat file1 file2 file3 > file_all
cat
peut également être utilisé de manière similaire pour concaténer des fichiers dans le cadre d'un pipeline, par exemple
cat file1 file2 file3 | grep foo
Ecrire dans un fichier
cat >file
Il vous permettra d'écrire le texte sur le terminal qui sera enregistré dans un fichier nommé fichier .
cat >>file
fera de même, sauf qu'il ajoutera le texte à la fin du fichier.
NB: Ctrl + D pour terminer l'écriture du texte sur le terminal (Linux)
Un document ici peut être utilisé pour incorporer le contenu d'un fichier dans une ligne de commande ou un script:
cat <<END >file
Hello, World.
END
Le jeton après le symbole <<
redirection est une chaîne arbitraire qui doit apparaître seule sur une ligne (sans espace avant ou arrière) pour indiquer la fin du document ici. Vous pouvez ajouter des guillemets pour empêcher le shell d'effectuer une substitution de commande et une interpolation de variable:
cat <<'fnord'
Nothing in `here` will be $changed
fnord
(Sans les guillemets, here
serait exécuté comme une commande, et $changed
serait remplacé par la valeur de la variable changed
- ou rien si elle était indéfinie.)
Afficher les caractères non imprimables
Ceci est utile pour voir s'il existe des caractères non imprimables ou des caractères non-ASCII.
Par exemple, si vous avez copié le code depuis le Web, vous pouvez avoir des guillemets comme ”
au lieu de standard "
.
$ cat -v file.txt
$ cat -vE file.txt # Useful in detecting trailing spaces.
par exemple
$ echo '” ' | cat -vE # echo | will be replaced by actual file.
M-bM-^@M-^] $
Vous pouvez également utiliser le cat -A
(A pour Tous) équivalent à cat -vET
. Il affichera les caractères TAB (affichés comme ^I
), les caractères non imprimables et la fin de chaque ligne:
$ echo '” `' | cat -A
M-bM-^@M-^]^I`$
Concaténer des fichiers compressés
Les fichiers compressés par gzip
peuvent être directement concaténés en plus gros fichiers compressés.
cat file1.gz file2.gz file3.gz > combined.gz
C'est une propriété de gzip
moins efficace que la concaténation des fichiers d'entrée et la compression du résultat:
cat file1 file2 file3 | gzip > combined.gz
Une démonstration complète:
echo 'Hello world!' > hello.txt
echo 'Howdy world!' > howdy.txt
gzip hello.txt
gzip howdy.txt
cat hello.txt.gz howdy.txt.gz > greetings.txt.gz
gunzip greetings.txt.gz
cat greetings.txt
Qui se traduit par
Hello world!
Howdy world!
Notez que greetings.txt.gz
est un fichier unique et est décompressé en tant que fichier unique greeting.txt
. Comparez ceci avec tar -czf hello.txt howdy.txt > greetings.tar.gz
, qui garde les fichiers séparés à l'intérieur de l'archive.