head con Bash

Comando head para Linux

Con el comando head de Linux conseguimos de forma sencilla mostrar las primeras líneas de un fichero. Cuando tenemos archivos largos y solo queremos «mostrar su cabeza (head)» es una excelente idea utilizar este comando.

head [opciones] [mi_archivo]

Hay que tener en cuenta que si no especificamos ninguna opción el comando head nos mostrará las diez primeras líneas. Entendiendo por una línea de texto, un texto que finaliza con salto de línea.

Para seguir con esta entrada debemos tener en nuestro equipo un archivo de texto con unas cuantas líneas, a ser posible más de diez líneas. Hacer uso del texto de lorem ipsum puede ser una buena idea.

Aquí un ejemplo de archivo de texto con más de diez líneas. Creando el fichero de texto lorem.txt.

Lorem ipsum 
es el texto que se 
usa habitualmente 
en diseño
 gráfico en demostraciones 
de tipografías 
o de b
orradores de di
seño para pro
bar el 
diseño visual antes 
de insertar el texto final.
Aunque no posee actualmente 
fuentes para justificar su
s hipótesis, 
el profesor de filología 
clásica Richard McClintock asegura que su uso se remonta a los impresores de comienzos del siglo xvi.1​ Su uso en algunos editores de texto muy conocidos en la actualidad ha dado al texto lorem ipsum nueva popularidad.

Haciendo uso del comando cat en Bash podemos ver que el texto anterior tiene 17 líneas.

cat -n lorem.txt

Sabiendo que tenemos un texto con más de diez líneas vamos a utilizar el comando head de Linux por defecto. No agregaremos ninguna de las opciones disponibles para este comando.

head lorem.txt

Este comando nos mostrará las diez primeras líneas del documento lorem.txt.

Si duplicamos ese archivo mediante el comando cp de Linux llamándolo por ejemplo lorem_copia.txt podremos hacer un head de dos archivos a la vez.

cp lorem.txt lorem_copia.txt

Ahora podemos hacer uso del comando head sobre lorem.txt y lorem_copia.txt a la vez. Esto nos mostrará de resultado las diez primeras líneas de cada uno de los documentos.

head lorem.txt lorem_copia.txt

El comando head genera en el resultado una separación de forma automática indicando ==> el nombre <== de cada archivo.

Consultando las primeras líneas de dos fichero con el comando head de Linux

Opciones para head en Bash

Mediante las opciones podemos afinar mucho más el comando head de Linux. Recuerda que la mayoría de los comandos aumentan su potencia combinando las opciones disponibles. Puedes verlas todas ejecutando en la terminal man head.

  • -n: muestra las primeras n líneas del fichero.
head -n 3 lorem.txt
  • -c: muestra los primeros n bytes del fichero.
head -c 300 lorem.txt
  • -q: muestra las primeras líneas de un fichero suprimiendo el encabezado con el nombre del archivo.
head -q lorem.txt
  • -v: muestra las primeras líneas de varios archivos, mostrando un encabezado con el nombre del archivo.
head -v lorem.txt lorem_copia.txt

Este ejemplo utilizando opciones con el comando head con Bash va a mostrar las tres primeras líneas de cada uno de los ficheros.

head -n 3 lorem.txt lorem_copia.txt
Consultando las tres primeras líneas de dos fichero con el comando head -n 3 de Linux

Aunque se sale un poco del uso del comando head para Linux, se nos puede pasar por la cabeza mostrar las cinco primeras líneas del primer fichero y las dos primeras del segundo.

Para llevar a cabo esto tendríamos que hacer uso del operador lógico && AND. Teniendo en cuenta que si el primer comando no se ejecuta correctamente (devolviendo un código de salida 1), el segundo comando no se ejecutará.

head -n 5 lorem.txt && head -n 2 lorem_copia.txt

Al tratarse de la ejecución de dos comandos head de un solo archivo, no obtenemos el resultado con la separación del ==> el nombre <== de cada archivo creada de forma automática.

Para que podamos ver la separación de los dos archivos, podemos crearla imprimiendo algunos guiones entre los comandos.

head -n 5 lorem.txt && echo '--' && head -n 2 lorem_copia.txt
Consultando con el comando head en dos archivos con el operador lógico and.

Trabajar con el comando head en Bash es muy parecido a trabajar con el comando tail en Bash. Uno hace referencia las primeras líneas del documento y el otro comando a las líneas del final.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *