Com utilitzar les ordres cat i tac amb exemples a Linux


Aquest article forma part de la nostra sèrie de trucs i consells de Linux, en aquest article tractarem alguns ús bàsics de l'ordre cat (l'ordre més utilitzada a Linux) i tac (ordre inversa de cat: imprimir fitxers en ordre invers) amb algunes pràctiques pràctiques. exemples.

Ús bàsic de Cat Command a Linux

L'ordre Cat, acrònim de Concatenar, és una de les ordres més utilitzades als sistemes *nix. L'ús més bàsic de l'ordre és llegir fitxers i mostrar-los a stdout, és a dir, mostrar el contingut dels fitxers al vostre terminal.

# cat file.txt

Un altre ús de l'ordre cat és llegir o combinar diversos fitxers junts i enviar la sortida a un monitor tal com s'il·lustra als exemples següents.

# cat file1.txt file2.txt file3.txt

L'ordre també es pot utilitzar per concatenar (unir) diversos fitxers en un sol fitxer mitjançant l'operador de redirecció de Linux \>”.

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

Mitjançant el redirector d'afegir, podeu afegir el contingut d'un fitxer nou a la part inferior del file-all.txt amb la sintaxi següent.

# cat file4.txt >> file-all.txt

L'ordre cat es pot utilitzar per copiar el contingut del fitxer a un fitxer nou. El nou fitxer es pot canviar de nom arbitrari. Per exemple, copieu el fitxer des de la ubicació actual al directori /tmp/.

# cat file1.txt > /tmp/file1.txt 

Copieu el fitxer de la ubicació actual al directori /tmp/ i canvieu-ne el nom.

# cat file1.txt > /tmp/newfile.cfg

Un ús menor de l'ordre cat és crear un fitxer nou amb la sintaxi següent. Quan acabeu d'editar el fitxer, premeu CTRL+D per desar i sortir del nou fitxer.

# cat > new_file.txt

Per numerar totes les línies de sortida d'un fitxer, incloses les línies buides, utilitzeu l'interruptor -n.

# cat -n file-all.txt

Per mostrar només el número de cada línia no buida, utilitzeu l'interruptor -b.

# cat -b file-all.txt

Voleu obtenir més informació sobre l'ordre del gat de Linux? a continuació, llegiu el nostre article sobre 13 exemples útils d'ordres gat a Linux.

Apreneu a utilitzar el comandament Tac a Linux

D'altra banda, una ordre menys coneguda i menys utilitzada als sistemes *nix és l'ordre tac. Tac és pràcticament la versió inversa de l'ordre cat (també escrit al revés) que imprimeix cada línia d'un fitxer començant des de la línia inferior i acabant a la línia superior fins a la sortida estàndard de la vostra màquina.

# tac file-all.txt

Una de les opcions més importants de l'ordre està representada per l'interruptor -s, que separa el contingut del fitxer en funció d'una cadena o una paraula clau del fitxer.

# tac file-all.txt --separator "two"

A continuació, l'ús més important de l'ordre tac és que pot proporcionar una gran ajuda per depurar fitxers de registre, invertint l'ordre cronològic del contingut del registre.

$ tac /var/log/auth.log

Or to display the last lines

$ tail /var/log/auth.log | tac
[email  ~ $ 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
....
[email  ~ $ 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
...

Igual que l'ordre cat, tac fa un treball excel·lent en la manipulació de fitxers de text, però s'ha d'evitar en altres tipus de fitxers, especialment en fitxers binaris o en fitxers on la primera línia indica el programa que l'executarà.