Recherche de site Web

Comment utiliser les commandes « cat » et « tac » avec des exemples sous Linux


Cet article fait partie de notre série de trucs et astuces Linux. Dans cet article, nous aborderons une utilisation de base de la commande cat (commande la plus fréquemment utilisée sous Linux) et tac ( commande inverse de cat – imprimer les fichiers dans l’ordre inverse) avec quelques exemples pratiques.

Lire aussi : 13 exemples de commandes 'cat' utiles sous Linux

Utilisation de base de la commande Cat sous Linux

La commande Cat, acronyme de Concatenate, 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 d'afficher le contenu des fichiers sur votre terminal.

cat file.txt

Une autre utilisation de la commande cat consiste à 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

La commande peut également être utilisée pour concaténer (joindre) plusieurs fichiers en un seul fichier à l'aide de l'opérateur de redirection Linux «>».

cat file1.txt file2.txt file3.txt > file-all.txt

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

cat file4.txt >> file-all.txt

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

cat file1.txt > /tmp/file1.txt 

Copiez le fichier de l'emplacement actuel dans le répertoire /tmp/ et modifiez son nom.

cat file1.txt > /tmp/newfile.cfg

Une utilisation moindre de la commande cat consiste à créer un nouveau fichier avec la syntaxe ci-dessous. Une fois l'édition du fichier terminée, appuyez sur CTRL+D pour enregistrer et quitter le nouveau fichier.

cat > new_file.txt

Afin de numéroter toutes les lignes de sortie d'un fichier, y compris les lignes vides, utilisez le commutateur -n.

cat -n file-all.txt

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

cat -b file-all.txt

Vous voulez en savoir plus sur la commande Linux cat ? puis lisez notre article sur 13 exemples de commandes « cat » utiles sous Linux.

Apprenez à utiliser la commande Tac sous Linux

D'un autre côté, une commande moins connue et moins utilisée dans les systèmes *nix est la commande tac. Tac est pratiquement la version inversée de la commande cat (également orthographiée à l'envers) qui imprime chaque ligne d'un fichier en commençant par la ligne du bas et en terminant par la ligne du haut selon le standard de votre machine. sortir.

tac file-all.txt

L'une des options les plus importantes de la commande est représentée par le commutateur -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"

Ensuite, l'utilisation la plus importante de la commande tac est qu'elle peut fournir une aide précieuse pour déboguer les fichiers journaux, en inversant l'ordre chronologique du contenu 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
...

Identique à la commande cat, tac fait un excellent travail dans la manipulation des fichiers texte, mais elle doit être évitée dans d'autres types de fichiers, en particulier les fichiers binaires ou les fichiers dont la première ligne désigne le programme qui l'exécutera.