Home / LinuxUser / 2003 / 11 / Zu Befehl: head, tail, cat

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Eingedost
(161 Punkte bei 4 Stimmen)
Aufteiler
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Aufmacher Artikel

Von Kopf bis Fuß

Zu Befehl: head, tail, cat

01.11.2003 Kleine Tools wie head, tail und cat zeigen den Inhalt von Textdateien an. Sie erfüllen jedoch alle eine spezielle Funktion, die andere Unix-Kommandos nicht bieten.

Zu Befehl

Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, in denen es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.

Zum Anzeigen von Textdateien stehen Ihnen unter Linux viele Programme zur Verfügung. Natürlich können Sie jederzeit einen Editor wie Vi oder Emacs oder einen Pager wie less oder more starten, um solche Files zu lesen. Es geht aber auch mit einfachen Tools wie cat, head und tail.

Multifunktional – cat

Das Programm cat verkettet (engl.: "to concatenate") nicht nur mehrere Dateien zu einer, es eignet sich auch dazu, einzelne Files auf der Standardausgabe anzuzeigen. Der einfache Aufruf cat datei.txt bringt den Inhalt der Datei auf den Bildschirm.

Manchmal ist es praktisch, eine Textdatei mit Zeilennummern zu versehen, um beispielsweise bei der Diskussion von Programmlistings auf eine bestimmte Zeile Bezug zu nehmen. Dafür bietet cat die Option -n und gibt damit zu Beginn jeder Zeile die Zeilennummer aus.

Vorsicht allerdings bei binären Formaten: gibt man aus Versehen eine Binärdatei mit cat aus, sind oft nur noch Sonderzeichen zu sehen und auch die Eingabe wird unleserlich (Abbildung 1). Abhilfe schafft hier das Programm reset: Tippen Sie (blind) reset am Prompt und drücken Sie [Return], um das Terminal zu reparieren. Falls auch das nicht hilft, probieren Sie es mit echo [Strg-v][Esc][c][Return].

Abbildung 1

Abbildung 1: "Binärmüll" auf der Kommandozeile – nicht immer hilft reset

Häufig wird cat dazu verwendet, Dateien durch eine Pipe an ein anderes Programm zu schicken. So lässt sich eine Liste mit cat ausgeben und direkt an das Kommando sort [1] weiterleiten:

$ cat liste.txt | sort
Arnie           42
Egbert          120
Hubert          30
Petronella      100

Die Ausgabe von cat lässt sich mit den für Unix typischen Mitteln umlenken: mit dem Operator > schreiben Sie den Output in die neue datei2:

cat datei1 > datei2

Das funktioniert auch mit mehreren Dateien. Dazu führen Sie die Dateinamen einfach nacheinander auf:

cat datei1 datei2 > datei3

Existiert datei3 noch nicht, wird sie angelegt. Ist sie allerdings schon vorhanden, überschreibt cat sie einfach. Mit einem anderen Operator bringen Sie cat dazu, an vorhandene Dateien anzuhängen:

cat datei1 datei2 >> datei3

Leiten Sie die Ausgabe wie in diesen Beispielen in eine Datei um, verarbeitet cat auch problemlos Binärdateien. So ist es möglich, große Dateien mit split in kleinere Pakete zu zerlegen und sie danach mit cat wieder zusammenzufügen. Anwendungen hierfür sind der Transport von Daten mit Disketten oder das Verschicken über E-Mail.

Einige Newsgruppen wie comp.unix.shell vergeben seit Jahren regelmäßig den "Useless Use of Cat Award"[2]. Der Preis geht an denjenigen, der den unsinnigsten Gebrauch des Kommandos cat vorschlägt – Begründung: "Mit cat sollte man Dateien verketten. Es ist reine Zeitverschwendung, ein einziges File mit nichts zu verknüpfen, und kostet einen Prozess". Unter diesem Gesichtspunkt mögen manche LeserInnen das eine oder andere Beispiel auch als "useless" ansehen. Jedenfalls entspricht auch eine redundante Anwendung von cat dem Unix-Prinzip, kleine Programme mit Hilfe von Pipes zu verketten. Bei moderner Hardware dürften die "Kosten" für einen zusätzlichen Prozess leicht zu verschmerzen sein.

Aller Anfang ist head

Der Name ist Programm: Mit head (engl.: "Kopf") geben Sie die ersten Zeilen einer Datei am Bildschirm aus. Standardmäßig schreibt der Aufruf head datei.txt die ersten zehn Zeilen auf den Bildschirm. Die Option -n nummer verändert diese Vorgabe. Die Konfigurationsdateien im Verzeichnis /etc enthalten in den ersten Zeilen häufig den Namen und Verwendungszweck der Datei. Um von sämtlichen dort liegenden Files die ersten drei Zeilen auszugeben, verwenden Sie den Aufruf head -n 3 *.conf.

Praktisch: Lassen Sie head auf mehr als eine Datei los, fügt das Tool eine optische Trennung ein (Listing 1). Wer auf dieses Feature verzichten möchte, verwendet den Parameter -q (für --quiet).

Listing 1

head

mit mehreren Files gibt Trenner aus

huhn@asteroid:/etc$ head -n 3 *.conf
==> aatv.conf <==
# aatv configuration file.
# Video mode. Choose between PAL, SECAM and NTSC.
==> abcde.conf <==
# System defaults for abcde.
# Nothing in this file is uncommented by default.
#
==> adduser.conf <==
…
Tip a friend    Druckansicht Bookmark and Share
Kommentare

2366 Hits
Wertung: 80 Punkte (4 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...