Linux / Comando cat: mostrar y concatenar archivos de texto

cat es un comando que envía el contenido de archivos a la salida estándar y concatena varios archivos en orden. Es útil para verificar rápidamente textos cortos o combinar archivos, pero para leer archivos largos less es más conveniente.

Los ejemplos de lectura requieren archivos existentes; sustituya los nombres de muestra por sus rutas reales. Compare esta función con otras herramientas en la Lista de comandos de uso frecuente en Linux.

El nombre proviene de concatenate. Si se ejecuta sin argumentos, lee la entrada estándar, y si se especifican varios archivos, muestra el contenido en el orden indicado. No modifica los archivos originales, pero si se especifica incorrectamente el destino de la redirección del shell, el archivo puede vaciarse.

Sintaxis básica

cat [OPCIONES] [ARCHIVO ...]

Las opciones y el comportamiento detallado pueden variar según la implementación y la versión. En el sistema actual, consulte la descripción de los comandos instalados como cat --help y man cat.

Uso básico de cat

Mostrar contenido de un archivo

Ver fragmentos de archivos de configuración cortos o registros en la pantalla.

cat /etc/os-release

Concatenar varios archivos para mostrar

No inserta automáticamente caracteres de separación entre archivos, por lo que deben añadirse por separado si es necesario.

cat part-01.txt part-02.txt

Combinar en un archivo nuevo

Guarde los resultados mediante redirección de salida. No use la misma ruta para el archivo de entrada y el archivo de salida, ya que el shell vaciará primero el archivo de salida.

cat chapter-1.txt chapter-2.txt > book.txt

Verificar el resultado de la salida estándar

El ejemplo siguiente crea sample.txt y muestra sus dos líneas. Ejecútelo en un directorio de práctica nuevo y compruebe antes que ese nombre no existe para evitar sobrescribir otro archivo.

printf 'one\ntwo\n' > sample.txt
cat sample.txt

Ejemplo de salida:

one
two

cat no detiene archivos largos por páginas, por lo que el resultado puede pasar rápidamente por la pantalla. Para explorar el contenido, use less.

Opciones principales

Opciones Descripción
-n Se adjunta un número de línea a todas las líneas de salida.
-b Se numera solo las líneas no vacías y tiene prioridad sobre -n.
-s Se comprimen las líneas vacías consecutivas en una sola línea.
-E Se muestra $ al final de cada línea.
-T Se muestran los caracteres de tabulación como ^I.
-A Equivale a -vET: muestra finales de línea, tabulaciones y otras representaciones de caracteres no imprimibles; también puede representar bytes no ASCII. No cambia la codificación del archivo.

Ejemplos de uso práctico

Revisar con números de línea

Es útil al comparar los números de línea de los mensajes de error con los archivos de configuración.

cat -n app.conf

Verificar caracteres invisibles

La opción de visualización se utiliza al investigar espacios en blanco, tabulaciones o problemas de CRLF al final de las líneas.

cat -A script.sh

Guardar la entrada estándar en un archivo

Use cat > memo.txt solo si memo.txt no existe o si desea reemplazar conscientemente su contenido: el shell lo abre y puede vaciarlo antes de que empiece a escribir. En una terminal habitual, pulse Ctrl+D en una línea vacía para indicar el fin de la entrada. Para editar un documento, suele ser más adecuado un editor.

cat > memo.txt

Comparación de comandos relacionados con cat

Comando Rol principal Situaciones adecuadas
cat Salida · combinación Archivos cortos y entrada de tubería
less Vista de página interactiva Exploración de archivos largos
tac Inversión del orden de las líneas Ver las últimas líneas primero
paste Combinación por línea Combinar archivos en forma de línea

Precauciones al usar

Revise archivos grandes con less

Si imprime un archivo de gran tamaño en la terminal, consumirá innecesariamente la pantalla y el búfer de la terminal.

Evitar que la salida apunte a un archivo de entrada

cat file > file puede vaciar el archivo en la shell antes de que cat lo lea.

Evite la salida de archivos binarios

Use file, hexdump o xxd, ya que los bytes de control pueden desordenar la visualización en la terminal.

FAQ

¿cat modifica el contenido de los archivos?

No. La operación básica es leer y enviar a la salida estándar. Sin embargo, el destino de la redirección puede ser creado o sobrescrito por el shell.

¿Se insertan automáticamente líneas en blanco entre varios archivos?

No. Los bytes de cada archivo se muestran tal como están.

¿Cómo se muestran los números de línea?

Todas las líneas utilizan -n, y solo las líneas que contienen contenido utilizan -b.

¿Se puede ver un registro largo con cat?

Es posible, pero si se necesita exploración y búsqueda, less es adecuado.

Documentación oficial