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


Este artículo es parte de nuestra serie 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 ( reverso del comando cat - imprima los archivos en orden inverso) con algunos ejemplos prácticos.

Uso básico del comando cat 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 a stdout , lo que significa mostrar el contenido de los archivos en su terminal.

# cat file.txt

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

# cat file1.txt file2.txt file3.txt

El comando también se puede usar para concatenar (unir) varios archivos en un solo archivo utilizando el operador de redirección de Linux “& gt;” .

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

Al usar el redirector agregado, 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 usar para copiar el contenido del archivo en un nuevo archivo. El nuevo archivo puede ser renombrado arbitrario. 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 menor uso 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, use el interruptor -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

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

Aprende 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 el estándar de su máquina salida.

# tac file-all.txt

Una de las opciones más importantes del comando está representada por el interruptor -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 los archivos de registro, invirtiendo el orden cronológico del contenido 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
...

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 en archivos binarios o en archivos donde la primera línea Denota el programa que lo ejecutará.