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.

BefehlBedeutungErgebnis
head datei.txtStandardaufrufDie ersten 10 Zeilen von datei.txt
head -n 5 datei.txtFeste Anzahl festlegenDie ersten 5 Zeilen
head -n 20 datei.txtLängeren Dateikopf anzeigenDie ersten 20 Zeilen
befehl | head -n 5Pipeline-Ausgabe begrenzenDie 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.

BefehlBedeutungErgebnis
head datei.txtDatei direkt lesenDie ersten 10 Zeilen der Datei
head -n 5 datei.txtDateianfang begrenzenDie ersten 5 Zeilen
head datei1.txt datei2.txtMehrere Dateien lesenDateiköpfe mit Zuordnung zur jeweiligen Datei
befehl | head -n 5Standard Input aus einer Pipeline lesenDie ersten 5 Zeilen der vorherigen Ausgabe

head im Vergleich zu ähnlichen Befehlen

BefehlTypischer ZweckAusgabebereich
headAnfang einer Datei oder Ausgabe prüfenErste Zeilen
tailDateiende oder aktuelle Protokollzeilen prüfenLetzte Zeilen
lessGroße Dateien interaktiv lesenSeitenweise, 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.txt zeigt standardmäßig die ersten zehn Zeilen.
  • Mit head -n ANZAHL datei.txt bestimmst du die Zeilenzahl selbst.
  • Mehrere Dateien können in einem Aufruf angegeben werden.
  • Ohne Dateinamen liest head aus Standard Input, etwa aus einer Pipeline.
  • Der Befehl zeigt Daten an und verändert die Quelldatei nicht.
  • Für das Dateiende ist tail zuständig, für interaktives Lesen großer Dateien meist less.