El comando cat significa del inglés catenate, que significa concatenar, ya que la función principal de este comando es unir varios archivos de entrada enviando secuencialmente su contenido a la salida estándar.
Para este tutorial hemos creado dos ficheros llamados file_domain y file_path son el siguiente contenido cada uno:
# file_domain
voidnull.es
# file_path
/diccionario-comandos-gnu-linux/Estos dos ficheros los utilizaremos para los ejemplos que veremos a continuación sobre el comando cat.
Como hemos mencionado cat sirve para concatenar ficheros, por lo que podemos hacerlo de la siguiente forma:
cat file_domain file_path > file_resultSi mostramos el fichero file_result:
cat file_result
voidnull.es
/diccionario-comandos-gnu-linuxConcatenar dos ficheros con separador
utilizamos cat sin ningún argumento, el comando cat mostrará los datos de la entrada estándar y los mostrará en su salida estándar, algo que puede ser útil pero que en realidad es un poco inútil... a menos que se utilice alguna opción para transformar los datos.
Además de pasar rutas de archivos por el comando cat, también entiende el guión como un alias para la entrada estándar. De esta forma, podemos insertar datos leídos de la entrada estándar entre dos ficheros.
Por ejemplo, vamos a añadir #### entre los dos ficheros con los que estamos trabajando:
echo '####' | cat file_domain - file_path
voidnull.es
####
/diccionario-comandos-gnu-linuxConcatenar imágenes. Sí, imágenes.
Puede parecer increíble, pero sí, podemos concatenar ficheros binarios con el comando cat. Como por ejemplo imágenes, tenemos una imagen de un lindo gatito, y hemos descargado el fichero en dos mitades:

curl -s -r 0-50000 https://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Felis_catus-cat_on_snow.jpg/1024px-Felis_catus-cat_on_snow.jpg -o image_first_half &
curl -s -r 50001- https://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Felis_catus-cat_on_snow.jpg/1024px-Felis_catus-cat_on_snow.jpg -o image_second_half &-r para indicar el rango de bytes a descargar.Para concatenar los dos trozos de la imagen, deberemos de ejecutar el siguiente comando:
cat image_first_half image_second_half > gatito.jpg
Mostrar ficheros de texto con información
El comando cat permite mostrar diferentes informaciones que pueden ser útiles. Por ejemplo el número de línea con la opción -n:
cat -n file_result
1 voidnull.es
2 /diccionario-comandos-gnu-linux
Con la opción -s podemos suprimir líneas vacías que se repitan, por ejemplo tenemos este contenido en el fichero file_clean:
voidnull.es
/diccionario-comandos-gnu-linuxPodemos eliminar un salto de línea:
cat -s file_clean
voidnull.es
/diccionario-comandos-gnu-linuxPero si utilizamos la opción -n con el fichero file_clean, nos indicará que hay 4 líneas y dos de ellas estarán vacías. Si queremos que cuenta únicamente las líneas donde hay contenido, podemos usar la opción -b.
cat -b file_clean
1 voidnull.es
2 /diccionario-comandos-gnu-linuxTambién podemos mostrar otro tipo de caracteres, como por ejemplos tabulaciones dentro del fichero, con la opción -t y también podemos marcar las líneas vacías o final de línea con la opción -e. Por lo tanto, si mostramos el fichero con estas dos opciones:
cat -te file_clean
voidnull.es$
^I$
$
/diccionario-comandos-gnu-linux$Donde aparece $ indica que hay un final de línea. Si aparece además también ^I indica que hay una tabulación.
Conclusión
Y recuerda, si necesitas buscar algo en un fichero muy grande, no utilices este comando:
cat /var/log/maillog | grep micorreo.comSi necesitas hacer filtrado por contenido, recuerda que puedes utilizar directamente el comando grep para eso!


Comentarios