VMware ESXi and vSphere Cluster Management
Die ersten Zeilen einer Datei mit head anzeigen
Lerne, wie du mit dem Linux-Befehl head die ersten Zeilen einer oder mehrerer Dateien sowie von Pipelines anzeigst.
Mit head kannst du den Anfang einer Textdatei schnell im Terminal prüfen. Standardmäßig zeigt der Linux- und Unix-Befehl die ersten zehn Zeilen auf der Standardausgabe an, meist also direkt im Terminal.
Was macht head?
head gibt den Anfang einer Datei oder eines Datenstroms aus. Das ist praktisch, wenn du Inhalt, Struktur oder das Format einer Datei prüfen möchtest, ohne die gesamte Datei anzeigen zu lassen.
Eine Zeile ist dabei ein Textelement, das durch einen Zeilenumbruch vom nächsten getrennt wird. Die Ausgabe von head wird gewöhnlich nach der Anzahl dieser Zeilen begrenzt.
Die Quelldatei wird durch den Befehl nicht verändert. Bei Binärdateien kann die Ausgabe allerdings unleserliche Zeichen enthalten, weil head grundsätzlich auch Bytes ausgeben kann, aber keine Binärdaten interpretiert.
Grundsyntax
head [OPTIONEN] [DATEI ...]
Nach head können zunächst Optionen und anschließend ein oder mehrere Dateinamen stehen. Die eckigen Klammern bedeuten, dass diese Angaben optional sind.
head datei.txt
head -n 5 datei.txt
head -n 20 datei.txt
head datei1.txt datei2.txt
In diesen Beispielen steht die Option -n vor dem Dateinamen. Viele gängige Linux-Implementierungen akzeptieren Optionen auch nach Dateinamen, für verständliche und portable Befehle solltest du Optionen jedoch vor den Dateien angeben.
Standardmäßig die ersten zehn Zeilen anzeigen
head datei.txt
Ohne weitere Option zeigt dieser Aufruf die ersten zehn Zeilen von datei.txt an. Gibt es weniger als zehn Zeilen, werden nur die vorhandenen Zeilen ausgegeben.
Das eignet sich beispielsweise für einen schnellen Blick auf den Anfang einer Konfigurationsdatei, einer CSV-Datei oder eines Protokolls:
head /var/log/beispiel.log
Bei einem Pfad muss die Datei am angegebenen Ort existieren und für deinen Benutzer lesbar sein.
Die Anzahl der Zeilen mit -n festlegen
Mit -n legst du fest, wie viele Zeilen vom Dateianfang ausgegeben werden. Danach folgt eine positive Zahl.
head -n 5 datei.txt
Dieser Befehl zeigt die ersten fünf Zeilen statt der standardmäßigen zehn Zeilen an.
head -n 20 datei.txt
Hier werden die ersten 20 Zeilen ausgegeben. Enthält die Datei nur zwölf Zeilen, erscheinen trotzdem nur diese zwölf vorhandenen Zeilen.
| Befehl | Bedeutung | Ergebnis |
|---|---|---|
head datei.txt | Standardaufruf | Die ersten 10 Zeilen von datei.txt |
head -n 5 datei.txt | Feste Anzahl festlegen | Die ersten 5 Zeilen |
head -n 20 datei.txt | Längeren Dateikopf anzeigen | Die ersten 20 Zeilen |
befehl | head -n 5 | Pipeline-Ausgabe begrenzen | Die ersten 5 Zeilen der Befehlsausgabe |
Mehrere Dateien auf einmal anzeigen
head kann mehrere Dateinamen in einem Aufruf verarbeiten:
head datei1.txt datei2.txt
Für jede Datei wird der Anfang ausgegeben. Zwischen den Ausgaben verwendet head Dateikopfzeilen, damit du die Herkunft der jeweiligen Zeilen erkennen kannst. Das ist hilfreich, wenn du Dateiköpfe miteinander vergleichen möchtest.
==> datei1.txt <==
Erste Zeile aus Datei 1
Zweite Zeile aus Datei 1
==> datei2.txt <==
Erste Zeile aus Datei 2
Zweite Zeile aus Datei 2
Die genaue Anzahl der ausgegebenen Zeilen pro Datei kannst du ebenfalls festlegen:
head -n 3 datei1.txt datei2.txt
Standard Input und Pipelines
Standard Input ist der Eingabekanal eines Programms. Wenn du keinen Dateinamen angibst, kann head Daten von dort lesen. Besonders häufig geschieht das über eine Pipeline. Das Zeichen | verbindet Befehle und leitet die Ausgabe des ersten Befehls als Eingabe an den nächsten weiter.
ls -l | head -n 5
Hier erzeugt ls -l eine Verzeichnisliste. head -n 5 zeigt davon nur die ersten fünf Zeilen.
printf 'alpha\nbeta\ngamma\ndelta\n' | head -n 2
In diesem Beispiel empfängt head vier Zeilen über Standard Input und gibt nur alpha und beta aus.
| Befehl | Bedeutung | Ergebnis |
|---|---|---|
head datei.txt | Datei direkt lesen | Die ersten 10 Zeilen der Datei |
head -n 5 datei.txt | Dateianfang begrenzen | Die ersten 5 Zeilen |
head datei1.txt datei2.txt | Mehrere Dateien lesen | Dateiköpfe mit Zuordnung zur jeweiligen Datei |
befehl | head -n 5 | Standard Input aus einer Pipeline lesen | Die ersten 5 Zeilen der vorherigen Ausgabe |
head im Vergleich zu ähnlichen Befehlen
| Befehl | Typischer Zweck | Ausgabebereich |
|---|---|---|
head | Anfang einer Datei oder Ausgabe prüfen | Erste Zeilen |
tail | Dateiende oder aktuelle Protokollzeilen prüfen | Letzte Zeilen |
less | Große Dateien interaktiv lesen | Seitenweise, mit Navigation |
Wenn du das Dateiende sehen möchtest, verwendest du beispielsweise:
tail datei.txt
Für große Dateien ist less oft besser geeignet, weil du vorwärts und rückwärts navigieren kannst:
less datei.txt
Wenn du gezielt Zeilen, Suchmuster oder Felder filtern möchtest, sind je nach Aufgabe grep, sed oder awk passende Werkzeuge.
Typische Fehler und Lösungen
Datei nicht gefunden
Eine Meldung wie head: datei.txt: No such file or directory bedeutet, dass der angegebene Pfad nicht gefunden wurde.
- Prüfe die Schreibweise des Dateinamens einschließlich Groß- und Kleinschreibung.
- Prüfe mit
pwd, in welchem aktuellen Verzeichnis du dich befindest. - Gib einen korrekten relativen oder absoluten Pfad an, zum Beispiel
head dokumente/datei.txt.
Zugriff verweigert
Bei einer Meldung wie Permission denied besitzt dein aktueller Benutzer wahrscheinlich keine Leseberechtigung.
- Prüfe Dateirechte und Eigentümer mit geeigneten Systemwerkzeugen.
- Verwende, falls du dazu berechtigt bist, einen Benutzer mit passendem Lesezugriff.
- Vermeide es, Berechtigungen unüberlegt zu verändern.
Weniger Zeilen als angefordert
Wenn du head -n 20 datei.txt ausführst, aber nur acht Zeilen erscheinen, enthält die Datei wahrscheinlich insgesamt nur acht Zeilen. head kann keine nicht vorhandenen Zeilen erzeugen.
Unverständliche Zeichen
Unleserliche Ausgabe kann auf eine Binärdatei oder eine ungeeignete Zeichenkodierung hinweisen. Prüfe den Dateityp beispielsweise mit:
file datei.bin
Verwende nach Möglichkeit eine Textdatei oder ein Werkzeug, das zum jeweiligen Dateiformat passt.
Merksätze für die Praxis
head datei.txtzeigt standardmäßig die ersten zehn Zeilen.- Mit
head -n ANZAHL datei.txtbestimmst du die Zeilenzahl selbst. - Mehrere Dateien können in einem Aufruf angegeben werden.
- Ohne Dateinamen liest
headaus Standard Input, etwa aus einer Pipeline. - Der Befehl zeigt Daten an und verändert die Quelldatei nicht.
- Für das Dateiende ist
tailzuständig, für interaktives Lesen großer Dateien meistless.