Head

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
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.

Voir aussi

  • Tail — la commande complémentaire, affichage de la fin d'un fichier et suivi continu (-f)
  • Fold — découper des lignes trop longues pour l'affichage