Press "Enter" to skip to content

Comando Linux TAC : Mostrar en Orden Inverso el contenido de un Archivo


¿Qué es el comando TAC de Linux?

El comando TAC de Linux permite leer y mostrar el contenido de un archivo en orden inverso, es decir, empezando por la última línea y acabando por la primera. Sin embargo, este comando solo cambia el orden de las líneas de un archivo, no el orden de las palabras ni de las letras. Es decir, si se ejecuta el comando TAC en un archivo de texto, las líneas se invertirán pero las palabras y las letras de las lineas tendran el mismo orden.

Uso básico del comando TAC

Imaginemos que tuviesemos en nuestro sistema un archivo llamado archivo1, con este contenido guardado:

linea 1
linea 2
linea 3
linea 4

Si ahora, ejecutasemos el comando TAC indicandole que muestre el contenido del archivo1 :

tac archivo1

Se mostraría por pantalla, las lineas del archivo archivo1, pero ordenadas de forma inversa:

linea 4
linea 3
linea 2
linea 1

Pero, si queremos mostrar de forma inversa el contenido de varios archivoseste comando también ofrece la posibilidad de colocar en la misma instrucción múltiples archivos. Para ello, tan solo debemos escribir jutno al comando TAC, la ruta o el nombre de cada archivo separándolos por un espacio en blanco.

Por ejemplo, fijaros en el contenido de este archivo llamado archivo2 .

linea A
linea B

Pues bien, Si ahora se quisiera mostrar el contenido del archivo1 y del archivo2 utilizando una única instrucción se debería ejecutar el comando TAC de esta forma:

tac archivo1 archivo2

En este caso, el comando leerá y mostrará en orden inverso el contenido del archivo1 y después el contenido del archivo2.

Redirigir el resultado del comando TAC a un archivo

Para redirigir el resultado de salida despues de ejecutar el comando TAC hacia un archivo, podemos utilizar el operador «mayor que» (>) seguido del nombre del archivo en el que se debe guardar el resultado. Por ejemplo, para guardar el contenido del archivo archivo1 en un archivo llamado letras1, usamos el siguiente comando:

tac archivo1 > letras1

Con esta instrucción indicaremos que el resultado de ejecutar el comando TAC utilizando el archivo archivo1 debe ser redirigido o guardado, a un archivo llamado letras1 , y si el archivo letras1 no existe en la ubicación indicada, se creará automáticamente. En cambio, si el archivo existe este será sobrescrito por un nuevo archivo.

Si no queremos sobrescribir un archivo existente y deseamos agregar el contenido al final del archivo, en lugar de usar un único operador «mayor que» (>) deberemos usar dos caracteres «mayor que» (>>). Por ejemplo, si deseamos añadir el contenido del archivo archivo1 al final del archivo letras1 , usaremos la siguiente instruccion:

tac archivo1 >> letras1

Con esta instruccion le estamos indicando que el resultado de ejecutar el comando TAC sobre el archivo llamado archivo1, lo guarde al final del contenido del archivo llamado letras1, y si el archivo letras1 no existiese en la ubicación indicada, se crearia automáticamente.

Combinar el comando TAC con otros comandos para invertir el resultado

Podemos ejecutar este comando TAC junto a otros comandos de Linux cuya ejecución sea una lista de elementos, para invertir el orden en que se muestran dichos elementos.

Por ejemplo, supongamos que queremos mostar los archivos y directorios que hay en el directorio actual mediante el comando ls. Ejecutando la siguiente isntrucción:

ls ./

Pues bien , el resultado será una lista de los archivos y directorios de la carpeta actual, como por ejemplo esta de aqui:

directorio1
directorio2
directorio3

Pero si queremos mostrar de forma inversa el resultado de este comando ls, podemos usar en esta instrucción , el comando TAC junto con el operador de tubería (|).

Por lo tanto, la ejecuión de la siguiente instrucción:

ls ./|tac

Mostraria de forma invertida la lista de los archivos y directorios de la carpeta actual gracias al comando TAC:

directorio3
directorio2
directorio1

Video explicativo Comando Linux TAC

Si queréis, podeis ver una explicación mas detalla en este video: