Cómo usar comandos cat y tac con ejemplos en Linux


Este artículo es parte de nuestra serie de trucos y consejos de Linux, en este artículo cubriremos algunos usos básicos del comando cat (el comando más utilizado en Linux) y tac (al revés del comando cat: imprime archivos en orden inverso) con algunas prácticas ejemplos.

Uso básico de Cat Command en Linux

El comando Cat, acrónimo de Concatenate, es uno de los comandos más utilizados en los sistemas * nix. El uso más básico del comando es leer archivos y mostrarlos en la salida estándar, es decir, mostrar el contenido de los archivos en su terminal.

# cat file.txt

Otro uso del comando cat es leer o combinar varios archivos y enviar la salida a un monitor como se ilustra en los ejemplos siguientes.

# cat file1.txt file2.txt file3.txt

El comando también se puede usar para concatenar (unir) múltiples archivos en un solo archivo usando el operador de redirección de Linux “>” .

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

Al usar el redirector de anexos, puede agregar el contenido de un nuevo archivo al final del file-all.txt con la siguiente sintaxis.

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

El comando cat se puede utilizar para copiar el contenido de un archivo a un archivo nuevo. El nuevo archivo puede cambiarse de nombre de forma arbitraria. Por ejemplo, copie el archivo de la ubicación actual al directorio /tmp/.

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

Copie el archivo desde la ubicación actual al directorio /tmp/ y cambie su nombre.

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

Un uso menor del comando cat es crear un nuevo archivo con la siguiente sintaxis. Cuando termine de editar el archivo, presione CTRL + D para guardar y salir del nuevo archivo.

# cat > new_file.txt

Para numerar todas las líneas de salida de un archivo, incluidas las líneas vacías, utilice el conmutador -n .

# cat -n file-all.txt

Para mostrar solo el número de cada línea no vacía, use el interruptor -b .

# cat -b file-all.txt

¿Quiere aprender más sobre el comando cat de Linux? luego lea nuestro artículo sobre 13 ejemplos útiles de comandos "cat" en Linux.

Aprenda a usar el comando Tac en Linux

Por otro lado, un comando menos conocido y menos utilizado en los sistemas * nix es el comando tac . Tac es prácticamente la versión inversa del comando cat (también escrito al revés) que imprime cada línea de un archivo comenzando desde la línea inferior y terminando en la línea superior hasta la salida estándar de su máquina.

# tac file-all.txt

Una de las opciones más importantes del comando está representada por el modificador -s , que separa el contenido del archivo basándose en una cadena o una palabra clave del archivo.

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

A continuación, el uso más importante del comando tac es que puede proporcionar una gran ayuda para depurar archivos de registro, invirtiendo el orden cronológico de los contenidos del registro.

$ tac /var/log/auth.log

Or to display the last lines

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

Al igual que el comando cat , tac hace un excelente trabajo en la manipulación de archivos de texto, pero debe evitarse en otro tipo de archivos, especialmente archivos binarios o en archivos donde la primera línea denota el programa que lo ejecutará.