Die Befehle head
und tail
gehören zu den grundlegenden Werkzeugen 🔧 unter Linux, mit denen du den Anfang und das Ende von Textdateien anzeigen kannst.
Wie bei anderen Befehlen steht auch hier der Name symbolisch für das, was getan wird: Kopf und Schwanz.
Dieser Artikel vergleicht die beiden Befehle, zeigt dir wichtige Optionen und gibt Beispiele für den praktischen Einsatz.
Grundlegende Syntax
Die allgemeine Syntax von head
und tail
sieht so aus:
|
|
Einfaches Beispiel
Im einfachsten Fall kannst du damit die ersten und letzten 10 Zeilen einer Datei ausgeben:
|
|
Natürlich werden bei Dateien mit weniger Zeilen auch nur die vorhandenen ausgegeben.
Wichtige Optionen
Die Befehle head
und tail
sind sehr ähnlich, aber nicht identisch. Daher werden wir sie hier auch direkt gegenüberstellen.
Optionen für head
Option | Bedeutung |
---|---|
-c N , --bytes=N |
zeigt die ersten N Bytes an |
-n N , --lines=N |
zeigt die ersten N Zeilen an |
-q , --quiet |
zeigt Dateinamen nicht als Header an |
-v , --verbose |
zeigt Dateinamen als Header an |
Optionen für tail
Option | Bedeutung |
---|---|
-c N , --bytes=N |
zeigt die letzten N Bytes an |
-n N , --lines=N |
zeigt die letzten N Zeilen an |
-q , --quiet |
zeigt Dateinamen nicht als Header an |
-v , --verbose |
zeigt Dateinamen als Header an |
-f , --follow |
aktualisiert die Ausgabe bei neuen Zeilen |
-s N , --sleep=N |
Schlafintervall N Sekunden bei f |
Praktische Beispiele
Sehen wir uns nun genauer an, wie du beide Befehle sinnvoll einsetzen kannst.
Nur N Zeilen anzeigen
Neben der einfachsten Form kannst du auch angeben wie viele Zeilen du sehen möchtest:
|
|
Auch diese Variante funkioniert:
|
|
Und das lässt sich noch kürzer schreiben:
|
|
Nur ab der Zeile N ausgeben
Wenn du die Zahl N mit einem positiven Vorzeichen angibst, dann werden nur die Daten ab dieser zeile ausgegeben:
|
|
Das kann sinnvoll sein, wenn du zum Beispiel einen Header überspringen möchtest und dynamisch alle Datenzeilen ausgeben willst.
Bestimmte Bereiche ausgeben
Es ist auch gut möglich, das du die Befehle kombinierst, um nur einen bestimmten Bereich einer Datei auszugeben.
So könnte das aussehen:
|
|
Hier werden zum Beispiel 100 Zeilen von oben geholt, aber davon nur die unteren 20 behalten. So werden also die Zeilen 81-100 aus dem Log angezeigt.
Live-Überwachung verwenden
Besonders bei Logs kann es hilfreich sein, wenn man die Ausgabe direkt aktualisiert bekommt, sobald neue Meldungen entstehen. Das kannst du mit -f
erreichen:
|
|
Du kannst zusätzlich einen Zeilenbereich angeben:
|
|
Oder das gleich für mehrere Dateien ausführen:
|
|
Gleichzeitig Beginn und Ende ausgeben
Willst du Anfang und Ende gemeinsam betrachten? Auch das ist möglich:
|
|
Mit einer Variable lässt sich der Befehl noch verkürzen:
|
|
Kombination mit anderen Befehlen
Weiter oben haben wir bereits gesehen, das du head
und tail
kombinieren kannst. Aber zusammen mit anderen Befehlen kann das noch viel mehr Sinn ergeben.
So erstellst du dir die Datei für das Beispiel:
|
|
Zeig sie dir dann einmal an:
|
|
Das Ergebnis sieht bei mir so aus:
|
|
Jetzt werden wir diese Daten sortieren. Aber der HEADER soll immer noch ganz oben stehen:
|
|
Wir geben dafür zuerst nur die oberste Zeile aus, dann alles ab der zweiten Zeile in sortierter Form.
Hier das Ergebnis:
|
|
Fazit
Mit head
und tail
lassen sich Anfang und Ende von Dateien ganz einfach anzeigen.
Jetzt bist du dran: Experimentiere 💥 mit den Befehlen und sende mir deine Fragen!
Verwandte Befehle
Willst du tiefer einsteigen, dann sieh dir auch die verwandten Befehle zu head
und tail
an:
Hilfe zu command
Mehr zu command
findest du unter man command
und tldr command
.
Details zum Befehl tldr
gibt es hier.