Menu Fermer

5 exemples pour utiliser de la commande head sur Linux

Vous savez peut-être que la commande cat est utilisée pour imprimer le contenu d’un fichier, sur le terminal.
La commande cat imprime l’intégralité du fichier sur le terminal.
Mais parfois on peut avoir besoin d’afficher que le début.

Pour ce faire, vous pouvez utiliser la commande head qui permet d’afficher les N premières lignes d’un fichier.
C’est donc l’inverse de la commande tail.

Dans ce tutoriel, je vous donne 5 exemples pour utiliser la commande head.

5 exemples pour utiliser de la commande head

5 exemples pour utiliser de la commande head

Syntaxe de la commande head

Voici la syntaxe par défaut de la commande head :

head [option] [fichier]

Par défaut, elle affiche les 10 premières lignes de chaque fichier à la sortie standard.
Avec plus d’un fichier, précède chacun avec un en-tête donnant le nom du fichier.
Notez que les lignes vides sont considérés comme une ligne à part entière.

Imaginons le texte suivant dans le fichier rose-tatoo.txt :

1  The pictures tell the story
2  This life had many shades
3  I'd wake up every morning and before I'd start each day
4  I'd take a drag from last nights cigarette
5  That smoldered in its tray
6  Down a little something and then be on my way
7
8  I traveled far and wide
9  And laid this head in many ports
10  I was guided by a compass
11  I saw beauty to the north
12  I drew the tales of many lives
13  And wore the faces of my own
14  I had these memories all around me
15  So I wouldn't be alone

Contenu d'un fichier texte sur Linux

Afficher les N premières lignes d’un fichier avec head

Lorsque vous avez besoin d’imprimer un nombre spécifique de lignes, vous pouvez utiliser l’option -n suivie du nombre de lignes.

Par exemple, pour afficher les 2 premières lignes, vous pouvez utiliser ceci:

head -n 2 rose-tatoo.txt
fficher les N premières lignes d'un fichier avec la commande head sur Linux

Une syntaxe plus rapide consiste à écrire directement le nombre de lignes à afficher de cette manière.
Par exemple ici on affiche les quatre premières lignes.

head -4 rose-tatoo.txt

Afficher toutes sauf les N dernières lignes

Vous pouvez exclure un nombre spécifique de lignes à la fin du fichier et imprimer le contenu restant du fichier en fournissant un numéro négatif à l’option.

Par exemple, si vous souhaitez quitter les 15 dernières lignes du fichier, vous pouvez utiliser cette commande:

head -n -2 rose-tatoo.txt
Afficher toutes sauf les N dernières lignes avec la commande head sur Linux

Afficher plusieurs fichiers avec la commande head

head peut afficher plusieurs fichiers à la fois.
Pour cela, indiquez les noms des fichiers en les espaçant.
Par exemple pour afficher les deux premières lignes des fichiers rose-tatoo.txt et test.txt :

head -n 2 rose-tatoo.txt test.txt

Les noms des fichiers s’affichent en en-tête ==> fichier <== avec le contenu.

fficher plusieurs fichiers avec la commande head

Traiter l’en-tête dans la sortie

La commande Head imprime le nom du fichier comme en-tête au-dessus de la sortie de chaque fichier pour les séparer.
Si vous ne voulez pas que la commande head affiche le nom du fichier, ajoutez l’option -q :

head -q -n 2 rose-tatoo.txt test.txt
Traiter l'en-tête dans la sortie de la commande head de Linux

A l’inverse quand vous travaillez avec un seul fichier, si vous souhaitez que l’en-tête avec le nom du fichier apparaisse, ajoutez l’option -v :

head -v -n 2 rose-tatoo.txt
==> rose-tatoo.txt <==
     1  The pictures tell the story
     2  This life had many shades

Afficher un nombre spécifique d’octets / caractères d’un fichier

Si vous souhaitez imprimer un nombre spécifique d’octets d’un fichier, vous pouvez utiliser l’option -c suivi du numéro.
Normalement, la taille d’un caractère est un octet. Donc, vous pouvez y penser comme imprimant un certain nombre de caractères.
Les caractères espaces ou tabulations sont comptés dedans.

Par exemple pour afficher les 30 premiers caractères d’un fichier :

head -c30 rose-tatoo.txt
Afficher un nombre spécifique d'octets / caractères d'un fichier sur Linux

Vous pouvez également exclure un nombre spécifique d’octets à la fin du fichier.
Pour ce faire, spécifiez une valeur négative à l’option -c.

Par exemple pour exclure les 35 derniers caractères d’un fichier :

head -c -35 rose-tatoo.txt

Afficher les N lignes d’un fichier en combinant les commandes head et tail

Et si vous voulez afficher n nombre de lignes au milieu d’un fichier?

Par exemple, si vous souhaitez afficher les lignes de 5 à 10 de fichier, vous pouvez combiner la commande head avec la commande tail.
Comme notre fichier fait 14 lignes, cela affiche la 5e ligne.

head -n 10 rose-tatoo.txt | tail -n +5
     5  That smoldered in its tray
     6  Down a little something and then be on my way
     7
     8  I traveled far and wide
     9  And laid this head in many ports
    10  I was guided by a compass

La commande Head imprime les 10 premières lignes du fichier. Ensuite, la commande tail prend cette sortie et imprime toutes les lignes à partir du numéro de ligne 5. Cela vous donne les lignes de 5 à 10.

Si vous voulez simplement afficher la nième ligne, vous pouvez le faire en combinant head et tail à nouveau.

 head -n 15 rose-tatoo.txt | tail -n 1
    15  So I wouldn't be alone

Ainsi, la commande de tête imprime les 15 premières lignes du fichier, puis la commande queue imprime la dernière ligne de cette sortie. Ainsi, vous obtenez la 15ème ligne.