Unix: diferencias entre los comandos cat, more y less

Los comandos cat, more y less permiten mostrar el contenido de ficheros de texto desde la línea de comandos en sistemas Unix, las principales características y diferencias de cada uno de ellos son las siguientes:

Comando Unix CAT

El comando ‘cat’ imprimirá por pantalla el contenido del fichero sin ningún tipo de paginación ni posibilidad de modificarlo. Básicamente concatena archivos o la salida estándar en la salida estándar. Podemos pasarle parámetros como:

  -A, --show-all           lo mismo que -vET
  -b, --number-nonblank    numera las líneas que no están vacías
  -e                       lo mismo que -vE
  -E, --show-ends          muestra un $ al final de cada línea
  -n, --number             numera todas las líneas
  -s, --squeeze-blank      nunca muestra más de una línea vacía,
  -t                       equivalente a -vT
  -T, --show-tabs          muestra los caracteres de tabulación como ^I
  -u                       (sin efecto)
  -v, --show-nonprinting   utiliza la notación ^ y M-, salvo para LFD y TAB
      --help     muestra esta ayuda y finaliza
      --version  informa de la versión y finaliza

Mostrar el contenido de un fichero:

$ cat fichero

Concatenar dos ficheros de texto en uno:

$ cat fichero1 fichero2 > fichero3

Comando Unix MORE

Al igual que ‘cat’, ‘more’ permite visualizar por pantalla el contenido de un fichero de texto, con la diferencia con el anterior de que ‘more’ pagina los resultados. Primero mostrará por pantalla todo lo que se pueda visualizar sin hacer scroll y después, pulsando la tecla espacio avanzará de igual modo por el fichero.

$ more fichero
texto de ejemplo
texto de ejemplo
texto de ejemplo
--Más--(23%)

También podemos especificarle el número de líneas a mostrar y otros parámetros:

uso: more [-dflpcsu] [+númlíneas | +/patrón] nombre1 nombre2 ...

Comando Unix LESS

El comando ‘less’ es el más completo de los tres, pues puede hacer todo lo que hace ‘more’ añadiendo mayor capacidad de navegación por el fichero (avanzar y retroceder) además de que sus comandos están basados en el editor ‘vi’, del cual se diferencia en que no tiene que leer todo el contenido del fichero antes de ser abierto. Tiene una gran cantidad de opciones y parámetros, como siempre lo recomendable:

$ less --help