Linux / Befehl head: Den Anfang einer Datei anzeigen
Der head-Befehl druckt den Anfang einer Datei oder der Standardeingabe. Standardmäßig sind dies die ersten zehn Zeilen und er ist nützlich, um Kopfzeilen zu prüfen und Datenstichproben zu lesen oder den sichtbaren Teil der Pipeline-Ausgabe zu begrenzen.
Verwenden Sie -n, um eine Anzahl von Zeilen auszuwählen, und -c, um Bytes auszuwählen. Bei mehreren Dateien identifiziert normalerweise ein Dateiname-Kopf jede Ausgabe. GNU head unterstützt auch negative Zählwerte, die bedeuten, dass alle Eingaben außer der letzten Anzahl von Zeilen oder Bytes genommen werden.
Ergänzende Befehle und Anwendungsfälle finden Sie in Essenzielle Linux-Befehle: Ein praktisches Nachschlagewerk nach Aufgabe.
Grundlegende Syntax
head [OPTION]... [FILE]...
Optionen und Randfälle können je nach Implementierung und Version variieren. Überprüfen Sie head --help und man head auf dem Zielsystem, bevor Sie sich auf implementierungsspezifisches Verhalten verlassen.
Grundlegende Head-Verwendung
Die ersten zehn Zeilen anzeigen
Ohne die Option zur Angabe der Anzahl druckt head zehn Zeilen von jeder Eingabe.
head access.log
Eine Zeilenanzahl wählen
Geben Sie die erforderliche Anzahl an -n weiter.
head -n 25 access.log
Wählen Sie eine Byte-Anzahl
Die Anzahl bezieht sich auf Bytes, nicht auf Unicode-Zeichen, daher kann ein Mehrbyte-Zeichen geteilt werden.
head -c 64 sample.bin
Ergebnisse des Lesens nur des Anfangs
head -n 2 druckt nur die ersten zwei Zeilen der Eingabe. Es ist nützlich, um kleine Proben zu prüfen, ohne das Original zu ändern.
printf 'one\ntwo\nthree\n' | head -n 2
Beispielausgabe:
one two
Wenn der Befehl vor der Pipe große Datenmengen erzeugt, kann head vorzeitig beendet werden, was einen Broken-Pipe-Fehler im vorhergehenden Befehl verursacht. In der Automatisierung sollten Sie den Exit-Status der gesamten Pipeline prüfen.
Wichtige Optionen
| Option | Zweck |
|---|---|
-n NUM |
Drucken Sie die ersten NUM Zeilen. |
-c NUM |
Drucken Sie die ersten NUM Bytes. |
-q |
Dateinamensheader für mehrere Eingaben unterdrücken. |
-v |
Immer Dateinamensheader drucken. |
-n -NUM |
Auf GNU-Systemen alle außer den letzten NUM Zeilen drucken. |
-c -NUM |
Auf GNU-Systemen alle außer den letzten NUM Bytes drucken. |
Praktische Beispiele
CSV-Header und Beispiel inspizieren
Die Spaltenüberschrift und einige Datensätze anzeigen, ohne den gesamten Datensatz zu öffnen.
head -n 6 sales.csv
Anfänge mehrerer Logs vergleichen
Dateinamensheader erzwingen, damit die Quelle jedes Abschnitts klar bleibt.
head -v -n 5 app.log worker.log
Ein Befehlsresultat begrenzen
Der Produzent kann SIGPIPE erhalten, nachdem head genügend Eingaben hat, was beim Interpretieren des Status einer strikten Pipeline von Bedeutung ist.
find /var/log -type f | head -n 20
head und verwandte Befehle
| Befehl | Hauptrolle | Geeignet für |
|---|---|---|
head |
Den Anfang ausgeben | Header und Beispiele |
tail |
Das Ende ausgeben oder verfolgen | Aktuelle Protokolleinträge |
sed |
Bereiche auswählen und transformieren | Komplexere Zeilenverarbeitung |
less |
Durchsuchen Sie die vollständige Eingabe | Interaktive Suche |
Wichtige Hinweise
Byte-Zahlen sind keine Zeichen-Zahlen
Ein UTF-8-Zeichen kann zwischen Bytes getrennt werden und fehlerhaft erscheinen.
Head behält die vorhandene Reihenfolge bei
Sortieren Sie zuerst, wenn das gewünschte Ergebnis auf Wert, Größe oder Zeit und nicht auf der aktuellen Reihenfolge basiert.
Überprüfen Sie die Exit-Semantik der Pipeline
Mit pipefail kann ein upstream SIGPIPE einen ungleich Null Pipeline-Status erzeugen, selbst wenn head die angeforderten Zeilen erhalten hat.
FAQ
Wie viele Zeilen druckt head standardmäßig?
Zehn Zeilen.
Wie drucke ich nur die erste Zeile?
Verwenden Sie head -n 1 FILE.
Welcher Befehl druckt die letzten Zeilen?
Verwenden Sie tail.
Kann ich das erste 1 KiB drucken?
GNU head akzeptiert head -c 1K FILE; prüfen Sie die Suffix-Unterstützung bei anderen Implementierungen.
Weitere Angaben zu Syntax, Implementierung und Verfügbarkeit finden Sie unter GNU Coreutils head-Dokumentation.




