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_result
Si mostramos el fichero file_result
:
cat file_result
voidnull.es
/diccionario-comandos-gnu-linux
Concatenar 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-linux
Concatenar 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-linux
Podemos eliminar un salto de línea:
cat -s file_clean
voidnull.es
/diccionario-comandos-gnu-linux
Pero 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-linux
Tambié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.com
Si necesitas hacer filtrado por contenido, recuerda que puedes utilizar directamente el comando grep
para eso!

Comentarios