Kodokon kodokon.com

Leer un archivo y redirigir la salida

Muestra el contenido de un archivo con cat, head y tail, y luego captura una salida en un archivo.

7 min · 3 preguntas

Abrir esta lección en Kodokon

No siempre necesitas abrir un editor solo para echarle un vistazo a un archivo. El comando cat muestra su contenido directamente en la terminal. Su nombre viene de concatenate, "unir uno detrás de otro", porque también sabe mostrar varios archivos seguidos. Es la herramienta ideal para archivos pequeños: unas pocas decenas de líneas como mucho.

BASH
yoann@laptop:~/my-project$ cat shopping.txt
Bread
Cheese
Tomatoes

yoann@laptop:~/my-project$ cat shopping.txt notes.txt
Bread
Cheese
Tomatoes
Do not forget the Saturday market
cat con un archivo y luego con dos archivos mostrados uno detrás de otro.

En un archivo de diez mil líneas, cat hace desfilar la pantalla durante diez segundos y solo llegas a ver el final. Existen dos comandos más precisos: head muestra el principio de un archivo y tail muestra el final. Ambos muestran 10 líneas por defecto, y la opción -n te permite elegir cuántas. tail tiene un superpoder con la opción -f (follow): se queda abierto y muestra las líneas nuevas a medida que van llegando. Así es como se vigila en directo el registro de un servidor.

BASH
head server.log
head -n 5 server.log
tail -n 20 server.log
tail -f server.log
El principio, las 5 primeras líneas, las 20 últimas y luego el final en directo (Ctrl + C para salir).

Por defecto, un comando escribe su resultado en la pantalla. Pero puedes desviar ese resultado hacia un archivo, igual que desviarías el agua de una manguera hacia un cubo. Esto es la redirección, y se escribe con un signo de mayor que. Un solo signo > envía la salida a un archivo, sobrescribiendo lo que contuviera. Un doble signo >> añade al final sin borrar nada. Esa diferencia de un solo carácter lo cambia todo. Para comprobar lo que acabas de producir sin mostrarlo entero, el comando wc (word count) con la opción -l (lines) cuenta el número de líneas de un archivo.

BASH
yoann@laptop:~/my-project$ echo "My first line" > notes.txt
yoann@laptop:~/my-project$ echo "My second line" >> notes.txt
yoann@laptop:~/my-project$ cat notes.txt
My first line
My second line
yoann@laptop:~/my-project$ ls -l > inventory.txt
yoann@laptop:~/my-project$ wc -l inventory.txt
7 inventory.txt
Crear un archivo, añadirle una línea, comprobarlo, capturar una salida y contar sus líneas.

Prueba de conocimientos

Comprueba que has retenido los puntos clave de esta lección.

  1. ¿Para qué sirve el comando cat?
    • Para mostrar el contenido de un archivo en la terminal
    • Para crear un archivo vacío
    • Para eliminar un archivo
    • Para contar las líneas de un archivo
  2. ¿Cuál es la diferencia entre > y >>?
    • > añade al final, >> sobrescribe el archivo
    • > sobrescribe el archivo, >> añade al final
    • Ninguna, los dos escriben en un archivo
  3. ¿Cómo muestras las 20 últimas líneas del archivo server.log?
    • head -n 20 server.log
    • cat -n 20 server.log
    • tail -n 20 server.log