Linux / Comando head: mostrar las primeras líneas o bytes de un archivo

head es un comando que muestra solo la parte inicial de un archivo o de la entrada estándar. El valor predeterminado son las primeras 10 líneas y se utiliza para verificar rápidamente el formato del archivo y el encabezado, o para limitar la cantidad de resultados en una canalización.

Los ejemplos de archivos requieren rutas que existan en su entorno: cambie access.log, sales.csv y otros nombres por archivos adecuados. Para comparar las funciones de estas herramientas, consulte la Lista de comandos de uso frecuente en Linux.

El número de líneas se especifica con -n, y el número de bytes con -c. Si se proporcionan varios archivos, se agrega un encabezado con el nombre del archivo para distinguir cada resultado. En la implementación de GNU, también se proporciona una extensión para mostrar el resto después de excluir la parte final con un número negativo.

Sintaxis básica

head [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 head --help y man head.

Uso básico de head

Ver las primeras 10 líneas

Si se omite la opción, se muestran las primeras 10 líneas de cada entrada.

head access.log

Mostrar el número deseado de líneas

Se especifica el número de líneas después de -n.

head -n 25 access.log

Mostrar los primeros bytes

No se trata del número de caracteres, sino del número de bytes, por lo que los límites de los caracteres de varios bytes pueden cortarse.

head -c 64 sample.bin

Resultado de leer solo la parte inicial

head -n 2 imprime solo las dos primeras líneas de la entrada. Es útil para verificar una pequeña muestra sin cambiar el original.

printf 'one\ntwo\nthree\n' | head -n 2

Ejemplo de salida:

one
two

Si el comando antes de la tubería produce muchos datos, head puede terminar prematuramente, lo que provoca un error de tubería rota en el comando anterior. En automatización, verifique el estado de finalización de toda la tubería.

Opciones principales

Opciones Descripción
-n NUM Imprime las primeras NUM líneas.
-c NUM Imprime los primeros NUM bytes.
-q Oculta el encabezado del nombre del archivo al procesar varios archivos.
-v Muestra el encabezado del nombre del archivo incluso si solo hay un archivo.
-n -NUM Imprime todo excepto las últimas NUM líneas en la implementación GNU.
-c -NUM Imprime todo excepto los últimos NUM bytes en la implementación GNU.

Ejemplos de uso práctico

Revisar encabezado y muestra de CSV

Mire rápidamente la primera fila y algunos datos sin abrir todo el archivo.

head -n 6 sales.csv

Comparar las partes iniciales de varios registros

Marque claramente el nombre del archivo con -v para distinguir la fuente del resultado.

head -v -n 5 app.log worker.log

Ver solo una parte del resultado del comando

Dado que los comandos de producción pueden recibir SIGPIPE después de que head termine, se debe tener cuidado al interpretar el estado de salida en tuberías estrictas.

find /var/log -type f | head -n 20

Comparación de comandos relacionados con head

Comando Rol principal Situaciones adecuadas
head Salida de la parte inicial Verificación de encabezados y muestras
tail Salida de la parte final · seguimiento Verificación de registros recientes
sed Selección y edición de rango Manejo de rangos de líneas complejas
less Exploración interactiva completa Búsqueda de archivos largos

Precauciones al usar

-c no es el número de caracteres

Si se corta en medio de la secuencia de bytes de un carácter UTF-8, pueden aparecer caracteres dañados.

El head antes de ordenar sigue el orden original

Si desea el valor más grande o el elemento más reciente, primero debe ordenar adecuadamente.

Verifique el estado de finalización del pipe

En un entorno set -o pipefail, un SIGPIPE del comando anterior puede aparecer como un fallo.

FAQ

¿Cuántas líneas se muestran por defecto?

Generalmente, son las primeras 10 líneas.

¿Cómo se puede ver solo la primera línea?

Se utiliza head -n 1 ARCHIVO.

¿Qué comando se usa para ver la última línea?

Se utiliza tail.

¿Cómo se muestran los primeros 1024 bytes?

En GNU head, el sufijo K equivale a 1024 bytes, mientras que kB equivale a 1000. Puede usar head -c 1K ARCHIVO. Verifique si el soporte depende de la implementación.

Documentación oficial