Comment utiliser les commandes ‘cat’ et ‘tac’ avec des exemples sous Linux

Cet article fait partie de notre série Linux Astuces et Conseils, dans cet article nous couvrirons quelques utilisations de base de la commande cat (commande la plus fréquemment utilisée sous Linux) et de tac (inverse de la commande cat – affiche les fichiers dans l’ordre inverse) avec quelques exemples pratiques.

Lire aussi: 13 Exemples Utiles de la Commande ‘cat’ sous Linux

Utilisation de Base de la Commande Cat sous Linux

La commande cat, acronyme de Concaténer, est l’une des commandes les plus utilisées dans les systèmes *nix. L’utilisation la plus basique de la commande est de lire des fichiers et de les afficher sur stdout, c’est-à-dire afficher le contenu des fichiers sur votre terminal.

# cat file.txt
View Content of File in Linux

Une autre utilisation de la commande cat est de lire ou combiner plusieurs fichiers ensemble et envoyer la sortie à un moniteur comme illustré dans les exemples ci-dessous.

# cat file1.txt file2.txt file3.txt
View Content of Multiple Files

La commande peut également être utilisée pour concaténer (joindre) plusieurs fichiers en un seul fichier en utilisant l’opérateur de redirection Linux “>”.

# cat file1.txt file2.txt file3.txt > file-all.txt
Join Multiple Files in Linux

En utilisant le redirigeur d’ajout, vous pouvez ajouter le contenu d’un nouveau fichier au bas du fichier-all.txt avec la syntaxe suivante.

# cat file4.txt >> file-all.txt
Append Content File to New File

La commande cat peut être utilisée pour copier le contenu d’un fichier vers un nouveau fichier. Le nouveau fichier peut être renommé arbitrairement. Par exemple, copiez le fichier depuis l’emplacement actuel vers le répertoire /tmp/.

# cat file1.txt > /tmp/file1.txt 
Copy Content of File to New File

Copiez le fichier de l’emplacement actuel vers le répertoire /tmp/ et changez son nom.

# cat file1.txt > /tmp/newfile.cfg
Copy File to /tmp Location

A less usage of the cat command is to create a new file with the below syntax. When finished editing the file hit CTRL+D to save and exit the new file.

# cat > new_file.txt
Create New File using Cat Command

Pour numéroter toutes les lignes de sortie d’un fichier, y compris les lignes vides, utilisez l’option -n.

# cat -n file-all.txt
Add Numbers to Lines in File

Pour afficher uniquement le numéro de chaque ligne non vide, utilisez l’option -b.

# cat -b file-all.txt
Print Line Numbers in File

Vous voulez en savoir plus sur la commande Linux cat ? alors lisez notre article sur 13 Exemples Utiles de Commande ‘cat’ sous Linux.

Apprenez Comment Utiliser la Commande Tac sous Linux

En revanche, une commande moins connue et moins utilisée dans les systèmes *nix est la commande tac. Tac est pratiquement la version inverse de la commande cat (également écrite à l’envers) qui imprime chaque ligne d’un fichier en commençant par la ligne du bas et en finissant par la ligne du haut sur la sortie standard de votre machine.

# tac file-all.txt
Print Content File in Reverse Order

Une des options les plus importantes de la commande est représentée par l’option -s, qui sépare le contenu du fichier en fonction d’une chaîne ou d’un mot-clé du fichier.

# tac file-all.txt --separator "two"
Remove Matching String in File

Ensuite, l’utilisation la plus importante de la commande tac est qu’elle peut être d’une grande aide pour déboguer les fichiers journaux, en inversant l’ordre chronologique des contenus des journaux.

$ tac /var/log/auth.log

Or to display the last lines

$ tail /var/log/auth.log | tac
Exemple de Sortie
tecmint@tecmint ~ $ tac /var/log/auth.log
pr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
....
tecmint@tecmint ~ $ tail /var/log/auth.log | tac
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 15:55:02 tecmint CRON[17194]: pam_unix(cron:session): session closed for user root
Apr  6 15:55:01 tecmint CRON[17195]: pam_unix(cron:session): session closed for user root
...

Tout comme la commande cat, la commande tac fait un excellent travail dans la manipulation de fichiers texte, mais elle devrait être évitée dans d’autres types de fichiers, surtout les fichiers binaires ou les fichiers où la première ligne indique le programme qui l’exécutera.

Source:
https://www.tecmint.com/learn-linux-cat-command-and-tac-command/