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.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow