El comando cat en Linux: mostrar y concatenar archivos

Introducción

El comando cat es una de las herramientas más simples y poderosas que encontramos en cualquier distribución Linux. Aunque su nombre proviene de concatenar, su uso más frecuente es mostrar el contenido de archivos de texto directamente en la terminal. En este artículo exploraremos desde la sintaxis básica hasta ejemplos avanzados que le permitirán sacar el máximo provecho de cat en su día a día como administrador de sistemas, desarrollador o usuario curioso.

Sintaxis básica

La sintaxis de cat es extremadamente sencilla: se escribe cat seguida de una o más rutas de archivo separadas por espacios. Si no se indica ningún archivo, cat leerá desde la entrada estándar, lo que permite usarlo en combinación con tuberías para procesar flujos de datos. Algunas de las opciones más comunes incluyen -n para numerar las líneas, -b para numerar solo las líneas no vacías y -s para suprimir múltiples líneas en blanco consecutivas. Aunque cat no posee una gran cantidad de flags, su verdadera fuerza reside en la forma en que se combina con otros comandos de la shell.

Mostrar el contenido de un archivo

Para mostrar el contenido de un único archivo basta con ejecutar cat seguido del path del archivo. Por ejemplo, cat /etc/hosts imprimirá en la pantalla el archivo de configuración de hosts. Si el archivo es muy grande, puede resultar incómodo ver todo de golpe; en esos casos se suele combinar cat con less o more, como cat archivo | less, lo que permite desplazarse hacia arriba y hacia abajo mediante el teclado. Otro truco útil es usar la opción -n para tener numeración de líneas, lo que facilita la referencia a partes específicas del archivo durante la depuración de scripts o la revisión de logs.

Concatenar varios archivos

Una de las funciones originales de cat es concatenar, es decir, unir el contenido de varios archivos en un solo flujo de salida. Si ejecuta cat archivo1.txt archivo2.txt archivo3.txt, el resultado será la sucesión de los tres archivos, primero el contenido de archivo1.txt, seguido de archivo2.txt y finalmente archivo3.txt. Esta característica resulta muy útil cuando se necesita crear un archivo de log combinado a partir de varios fragmentos, o cuando se quiere generar un script que incluya múltiples bloques de código almacenados por separado. Además, al combinar la concatenación con redirección de salida, es posible crear el archivo resultante de forma directa: cat archivo1.txt archivo2.txt > combinado.txt.

Uso con redirecciones y tuberías

Cat brilla realmente cuando se usa junto a los mecanismos de redirección y tuberías de la shell. Por ejemplo, se puede filtrar el contenido mediante grep: cat registro.log | grep ERROR mostrará solo las líneas que contienen la palabra ERROR. Asimismo, se puede ordenar el contenido con sort: cat desordenado.txt | sort > ordenado.txt. Otra aplicación frecuente es pasar el output de cat como entrada a otros programas que esperan datos en stdin, como awk o sed, permitiendo realizar transformaciones complejas sin crear archivos intermedios. Finalmente, cat también puede leer desde la entrada estándar cuando no se le proporcionan archivos, lo que permite usarlo en secuencias de comandos interactivos: teclear cat, escribir algunas líneas y terminar con Ctrl+D para que la shell devuelva lo ingresado.

Ejemplos prácticos

Vamos a ver algunos ejemplos concretos que ilustran la versatilidad de cat:

  • Crear un archivo de texto rápidamente: cat > nota.txt
    Esto abre la entrada estándar; después de escribir el contenido y presionar Ctrl+D, se guarda todo en nota.txt.
  • Añadir contenido al final de un archivo existente: cat >> registro.txt
    Similar al anterior, pero usando el operador de agregado >> para no sobrescribir lo ya presente.
  • Numerar líneas de un archivo de configuración: cat -n /etc/nginx/nginx.conf | less
    Combina numeración y paginación para una revisión cómoda.
  • Unir varios fragmentos de un script: cat parte1.sh parte2.sh parte3.sh > script_completo.sh
    Luego se puede otorgar permisos de ejecución con chmod +x script_completo.sh.
  • Filtrar y contar ocurrencias: cat acceso.log | grep ‘200 OK’ | wc -l
    Cuenta cuántas peticiones HTTP con código 200 aparecen en el log.
  • Convertir mayúsculas a minúsculas: cat entrada.txt | tr ‘[:upper:]’ ‘[:lower:]’ > salida.txt
    Demuestra cómo cat puede servir como puente entre otros comandos de transformación.

Consejos y trucos

Algunos consejos para aprovechar al máximo cat:

  • Use siempre rutas absolutas o relativas claras para evitar ambigüedades, especialmente cuando trabaja en scripts que se ejecutan desde diferentes directorios.
  • Recuerde que cat no interpreta nada; si necesita procesar caracteres especiales como tabulaciones o saltos de línea de forma distinta, combine con herramientas como od o hexdump para inspección binaria.
  • En entornos de producción, evite usar cat con archivos muy grandes sin paginación; prefiera less o most para no saturar la terminal.
  • Cuando necesite ver el final de un archivo, combine cat con tail: cat archivo | tail -20 muestra las últimas veinte líneas.
  • Para verificar rápidamente si un archivo está vacío, puede usar cat archivo | wc -l; un resultado de cero indica ausencia de contenido.
  • Finalmente, si trabaja frecuentemente con archivos de configuración, considere crear un alias como alias micat=’cat -n’ para tener numeración automática sin escribir la opción cada vez.

Conclusión

En resumen, el comando cat, pese a su aparente simplicidad, es una pieza fundamental del entorno de línea de comandos en Linux. Su capacidad para mostrar, concatenar y trabajar con redirecciones lo convierte en un aliado indispensable para tareas cotidianas como revisar logs, crear archivos rápidamente o combinar fragmentos de código. Dominar sus opciones básicas y aprender a encajarlo con otras herramientas de la shell le permitirá trabajar de forma más eficiente y seguro. Le invitamos a practicar los ejemplos presentados y a explorar combinaciones propias; pronto descubrirá que cat es mucho más que un simple visor de archivos.

Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional para Francesc Roig francesc@vivaldi.net .

EspañolesEspañolEspañol