Comando "cat"
El comando "cat" sirve para crear, mover, concatenar (unir elementos de texto) contenidos de archivos para posteriormente, como salida, imprimirlos en pantalla.
Sintaxis:
Crear un archivo
Donde la opción "mayor que" ">" indica que insertaremos texto en un archivo y "texto.txt" es el archivo que se creara para incrustar dicho texto.
Una vez ejecutada la linea de comando, el cursor cambiara de posición para permitirnos ingresar el contenido de texto. Para el ejemplo utilizaremos un simple "hola mundo" y presionamos la combinación de teclas "ctrl+d" para indicar que terminamos el proceso.
Si hacemos un "ls -l" podremos ver que se creo el archivo "texto.txt"
Visualizar contenido
#cat [Archivo]
La forma mas simple de ver el contenido de un archivo es invocando el comando "cat" e indicándole la ruta del archivo, si nos encontramos posicionado en otro directorio o el nombre del archivo si nos encontramos en el mismo directorio que este.
Visualicemos el contenido del archivo "texto.txt" creado anteriormente..
Hay que mencionar que no estamos sujetos a visualizar contenidos de un archivo a la vez, si indicamos a "cat" varios archivos simultáneamente podremos visualizar sus contenidos en el orden en que estos fueron indicados. Veamos...
Opciones de visualización
#cat -n [Archivo]
La opción "-n" nos permite visualizar el contenido de un archivo con sus lineas enumeradas comenzando desde la linea "1" en adelante, incluyendo las lineas en blanco.
En este caso imprimiremos el contenido de un script "actualizar.sh" bajo la opción "-n", obteniendo el siguiente resultado.
#cat -b [Archivo]
La opción "-b" no permite enumerar también la linear del contenido de un archivo, pero sin tener en cuenta las lineas en blanco. Haremos uso del mismo archivo para que podamos hacer la comparación.
#cat -s [Archivo]
Para el caso en el que tengamos muchas lineas vacías podemos utilizar la opción "-s", quien nos sustituirá todas estas en una sola linea haciéndonos mas cómoda la visualización de un contenido con estas características.
#cat -T [Archivo]
En el caso que necesitemos visualizar las tabulaciones, "cat" cuenta con la opción "-T".
Lease "^I" como uno por tabulación. Lo que nos indica que tenemos dos tabulaciones en la imagen anterior.
Personalmente solía utilizar esta opción para visualizar las tabulaciones cuando escribía ciclos en python si lo hacia desde consola.
Con "cat" podemos concatenar texto introducido por teclado a un archivo ya existente. Podemos hacerlo reescribiendo o concatenando.
Reescribiendo
#cat > texto.txt
Especial atención a esto. Siendo texto.txt un archivo con contenido existente lo que ingresemos por teclado reemplazara todo el contenido del archivo por lo que ingresemos desde el teclado. Como vimos anterior mente, si el archivo no existe lo creara con el contenido ingresado.
Como podemos observar, primero visualizamos el contenido de "texto.txt" en la linea "cat texto.txt" imprimiendonos en pantalla "hola mundo", luego indicamos que vamos a ingresar texto por teclado "cat > texto.txt" donde ingresamos la cadena "reescribiendo" y salimos con "ctrl + d" guardando así lo ingresado. Cuando solicitamos nuevamente ver el contenido del archivo "texto.txt" bajo la ejecución de "cat texto.txt" vemos que el contenido cambio por el ingresado eliminando la linea "hola mundo" de su contenido.
Concatenando
#cat >> texto.txt
Para concatenar o unir elementos de texto a un archivo existente por medio de teclado, utilizaremos el comando "cat" la opción ">>" e indicamos el archivo sobre el que vamos a trabajar.
Como podemos observar en la imagen anterior primero visualizamos el contenido de "texto.txt" en la linea "cat texto.txt" imprimiendonos en pantalla "reescribiendo" tal cual lo dejamos en el ejemplo anterior, luego indicamos que vamos a ingresar texto por teclado "cat >> texto.txt" donde ingresamos la cadena "hola mundo" y salimos con "ctrl + d" guardando así lo ingresado. Cuando solicitamos nuevamente ver el contenido del archivo "texto.txt" bajo la ejecución de "cat texto.txt" vemos que la linea que ingresamos por teclado se incrusto al final del contenido sin modificar el resto del contenido del archivo en cuestión.
Archivo a un archivo
Reescribiendo
#cat texto1.txt > texto.txt
Del mismo modo que reescribimos el contenido de un archivo mediante la inserción por teclado y haciendo uso de "cat" podemos reescribir el contenido de un archivo con el contenido de otro archivo. Debe tenerse en cuenta que el contenido del archivo que indiquemos en primer lugar reemplazara el contenido del archivo que indiquemos en segundo lugar. Observemos...
En primer lugar visualizamos el contenido del archivo "texto.txt" para lo que nos arrojara en pantalla "hola mundo", hacemos lo mismo con el archivo "texto1.txt" obteniendo "hola mundo 1".
Para reemplazar el contenido del archivo "texto.txt" por el de "texto1.txt" ejecutamos la linea "cat texto1.txt >> texto.txt". Y si solicitamos ver el contenido nuevamente de "texto.txt" vemos que fue reescrito de "hola mundo" por "hola mundo 1".
Concatenando
#cat texto1.txt >> texto.txt
Para concatenar o unir el contenido de ambos archivos invocamos el comando "cat" seguido del archivo del que se obtendrá en contenido a concatenar, la opción que nos permitirá realizar la concatenación es ">>" y por ultimo el archivo en el que se incrustara el contenido del primer archivo. Observemos...
En esta imagen podemos observar como el contenido del archivo "texto1.txt" fue incrustado en el archivo "texto.txt" sin modificar el resto de su contenido.
Cabe destacar que esto no es una fusión de archivos. Si hacemos uso de "ls -l" veremos que el archivo "texto1.txt" sigue existiendo y que su contenido sigue intacto si lo visualizamos.
Cabe destacar que esto no es una fusión de archivos. Si hacemos uso de "ls -l" veremos que el archivo "texto1.txt" sigue existiendo y que su contenido sigue intacto si lo visualizamos.
Espero sea de utilidad.
Saludos, Cristian.