Head
| Fiche express | |
|---|---|
| Domaine | Affichage de fichiers (début) |
| Commande | head
|
| Options clés | -n (lignes), -c (octets)
|
| Voir aussi | Tail (fin de fichier, suivi continu) |
head affiche le début d'un fichier (10 lignes par défaut). C'est le complément naturel de tail, qui affiche la fin d'un fichier — mais contrairement à tail, head n'a pas d'option de suivi continu (voir plus bas).
Utilisation de base
head fichier.txt # les 10 premières lignes (comportement par défaut)
head -n 20 fichier.txt # les 20 premières lignes
head -20 fichier.txt # forme raccourcie équivalente
head -c 100 fichier.txt # les 100 premiers octets (pas des lignes)
head -n -5 fichier.txt # tout le fichier sauf les 5 dernières lignes
-n vs -c : lignes ou octets
Ces deux options ne comptent pas la même chose et ne sont pas interchangeables : -n
compte des lignes (délimitées par un retour chariot), -c compte des
octets bruts, sans notion de ligne. Sur un fichier texte classique, head -c 100
peut donc couper une ligne en plein milieu si elle dépasse 100 octets, alors que
head -n 1 renverra toujours une ligne complète.
head -n 1 fichier.txt # première ligne complète, quelle que soit sa longueur
head -c 1 fichier.txt # premier octet seulement, même au milieu d'une ligne
Plusieurs fichiers
head -n 5 fich1.txt fich2.txt # affiche un en-tête ==> fich1.txt <== avant chaque extrait
head -q -n 5 fich1.txt fich2.txt # -q (quiet) supprime ces en-têtes de nom de fichier
Combinaison avec un pipe
head s'utilise très souvent en sortie d'une autre commande, pour limiter l'affichage aux premières lignes d'un flux potentiellement long :
ps aux | head # les 10 premiers processus de la liste
ls -la /var/log | head -n 20 # les 20 premières entrées d'un répertoire
history | head -n 30 # les 30 premières commandes de l'historique
Pas de suivi continu
head n'a pas d'équivalent à l'option -f de tail : il affiche un extrait figé du
début du fichier puis rend la main immédiatement. Pour suivre un fichier qui grossit en temps
réel (typiquement un log applicatif), c'est tail -f qu'il faut utiliser, pas head.