Vous savez peut-être que la commande cat est utilisée pour imprimer le contenu d'un fichier sur le terminal. Le chat La commande imprime l'intégralité du fichier sur le terminal.
Head est un autre moyen d'afficher un fichier texte sous Linux. Vous pouvez utiliser head commande pour imprimer un nombre spécifié de lignes depuis le début du fichier.
Voici la syntaxe de la commande head :
head [option] [filename]
7 exemples de commande head
Apprenons à utiliser la commande head sous Linux avec des exemples pratiques.
Je vais utiliser le fichier agatha.txt dans cet exemple et voici le contenu de ce fichier texte. Vous pouvez télécharger le fichier pour pratiquer les commandes tout en suivant ce tutoriel :
The Mysterious Affair at Styles
The Secret Adversary
The Murder on the Links
The Man in the Brown Suit
The Secret of Chimneys
The Murder of Roger Ackroyd
The Big Four
The Mystery of the Blue Train
The Seven Dials Mystery
The Murder at the Vicarage
Giant's Bread
The Floating Admiral
The Sittaford Mystery
Peril at End House
Lord Edgware Dies
Murder on the Orient Express
Unfinished Portrait
Why Didn't They Ask Evans?
Three Act Tragedy
Death in the Clouds
Si vous n'utilisez aucune option avec la commande head, elle imprimera les 10 premières lignes par défaut
head agatha.txt
The Mysterious Affair at Styles
The Secret Adversary
The Murder on the Links
The Man in the Brown Suit
The Secret of Chimneys
The Murder of Roger Ackroyd
The Big Four
The Mystery of the Blue Train
The Seven Dials Mystery
The Murder at the Vicarage
Si le fichier a moins de dix lignes, il imprimera toutes les lignes, bien sûr.
1. Imprimer les N premières lignes avec la commande 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 3 premières lignes, vous pouvez utiliser ceci :
head -n 3 agatha.txt
The Mysterious Affair at Styles
The Secret Adversary
The Murder on the Links
2. Tout imprimer 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 nombre négatif à l'option -n.
Par exemple, si vous voulez laisser les 15 dernières lignes du fichier, vous pouvez utiliser cette commande :
head -n -15 agatha.txt
The Mysterious Affair at Styles
The Secret Adversary
The Murder on the Links
The Man in the Brown Suit
The Secret of Chimneys
3. Utilisation de plusieurs fichiers avec la commande head
Vous pouvez fournir plusieurs fichiers en entrée de la commande head.
head -n N file1 file2 file3
Par exemple, si vous devez afficher les deux premières lignes de deux fichiers, vous pouvez utiliser quelque chose comme ceci :
head -n 2 agatha.txt sherlock.txt
==> agatha.txt <==
The Mysterious Affair at Styles
The Secret Adversary
==> sherlock.txt <==
A Scandal in Bohemia
The Red-Headed League
Comme vous pouvez le voir, la sortie de chaque fichier est séparée par ==> filename <==.
4. Traiter l'en-tête dans la sortie
Comme vous l'avez vu dans le dernier exemple, la commande head imprime le nom du fichier comme en-tête au-dessus de la sortie de chaque fichier pour les séparer.
Vous pouvez utiliser l'option -q (mode silencieux) pour omettre le nom du fichier de la sortie.
head -q -n 2 agatha.txt sherlock.txt
The Mysterious Affair at Styles
The Secret Adversary
A Scandal in Bohemia
The Red-Headed League
Vous avez peut-être également remarqué que l'en-tête n'est pas imprimé pour un seul fichier d'entrée. Vous pouvez le forcer à imprimer le nom du fichier avec l'option -v (mode verbeux).
head -v -n 2 agatha.txt
==> agatha.txt <==
The Mysterious Affair at Styles
The Secret Adversary
Remarque :La taille d'un caractère est d'un octet.
5. Impression d'un nombre spécifique d'octets/caractères
Si vous avez besoin d'imprimer un nombre spécifique d'octets d'un fichier, vous pouvez utiliser l'option -c suivie du nombre.
Normalement, la taille d'un caractère est d'un octet. Vous pouvez donc le considérer comme l'impression d'un certain nombre de caractères.
head -c3 agatha.txt
The
Vous pouvez également exclure un nombre spécifique d'octets à la fin comme vous avez exclu un nombre spécifique de lignes à la fin. Pour ce faire, spécifiez une valeur négative à l'option -c.
head -c -50 agatha.txt
Astuce bonus :imprimer le nombre N de lignes d'un fichier en combinaison des commandes de tête et de queue
Et si vous voulez imprimer un nombre N de lignes au milieu d'un fichier ?
Par exemple, si vous souhaitez imprimer les lignes de 10 à 15 d'un fichier, vous pouvez combiner la commande head avec la commande tail.
head -n 15 agatha.txt | tail -n +10
La commande head imprime les 15 premières lignes du fichier. Ensuite, la commande tail prend cette sortie et imprime toutes les lignes à partir de la ligne numéro 10. Cela vous donne les lignes de 10 à 15.
Si vous souhaitez simplement imprimer la nième ligne, vous pouvez le faire en combinant à nouveau la tête et la queue.
head -n 15 agatha.txt | tail -n 1
Ainsi, la commande head imprime les 15 premières lignes du fichier, puis la commande tail imprime la dernière ligne de cette sortie. Ainsi, vous obtenez la 15ème ligne.
J'espère que vous avez compris l'utilisation de la commande head et de ses options. Si vous avez des questions, veuillez commenter ci-dessous !