La comanda head mostra les primeres línies d’un fitxer (per defecte, 10). Serveix per fer una ullada ràpida a un fitxer sense obrir-lo sencer (per exemple, la capçalera d’un CSV) i, sobretot, per quedar-te només amb els primers resultats d’una altra comanda. És la parella de tail, que mostra les últimes.
Sintaxi
head [opcions] [fitxer...]
Si no li passes cap fitxer, llegeix de l’entrada estàndard, que és com el faràs servir més sovint: al final d’una canonada.
Opcions
| Opció | Què fa |
|---|---|
-n N | Mostra les primeres N línies (també s’accepta la forma curta -N, per exemple -5) |
-n -N | Mostra-ho tot menys les últimes N línies |
-c N | Mostra els primers N bytes (admet sufixos: 1K, 1M…) |
-q | Amb diversos fitxers, no escriu la capçalera amb el nom de cada fitxer |
-v | Escriu sempre la capçalera, encara que només hi hagi un fitxer |
Exemples
Les 10 primeres línies d’un fitxer:
head /etc/passwd
Les 3 primeres:
$ seq 1 12 > num.txt
$ head -n 3 num.txt
1
2
3
Tot menys les 9 últimes (amb aquest fitxer de 12 línies, el resultat és el mateix):
$ head -n -9 num.txt
1
2
3
Diversos fitxers a la vegada. head separa cada un amb una capçalera:
$ head -n 2 fitxer1.txt fitxer2.txt
==> fitxer1.txt <==
primera línia
segona línia
==> fitxer2.txt <==
tercera línia
Al final d’una canonada
Els 5 fitxers modificats més recentment d’un directori:
ls -lt /etc | head -n 6
(La primera línia de ls -l és el total, per això en demanem 6.)
Els 10 processos que consumeixen més memòria:
ps aux --sort=-%mem | head -n 11
Les 5 primeres línies d’un registre que contenen error:
grep error registre.log | head -n 5
Aquí grep -m 5 error registre.log faria el mateix i s’aturaria abans de llegir tot el fitxer.
Un rang de línies
Combinat amb tail, pots extreure les línies de la 5 a la 7:
$ head -n 7 num.txt | tail -n 3
5
6
7
El mateix amb sed: sed -n '5,7p' num.txt.
Llegir uns quants bytes
Per veure el començament d’un fitxer binari (per exemple, per identificar-ne el tipus):
head -c 16 imatge.png | hexdump -C
O per generar una contrasenya aleatòria:
head -c 18 /dev/urandom | base64
Compte amb…
head -n -Nno funciona igual a tot arreu. Els nombres negatius són una extensió de GNU: a macOS i als BSD,headno els accepta.- Missatges
Broken pipe. Quanheadja té les línies que volia, tanca la canonada, i el programa d’abans pot acabar amb un error d’escriptura. És normal i no indica cap problema.
Comandes relacionades
tail: les últimes línies.cat: el fitxer sencer.less: llegir fitxers llargs.grep: buscar línies.du -sk * | sort -nr: un altre cas típic de canonada que acaba ambhead.- Manipular text amb les GNU textutils.