cat
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Hinweis:
Dieser Artikel beschreibt die alte Implementation des Programms. Ab Ubuntu 24.04 ist auch mit Paket rust-coreutils 🇬🇧 eine neue Implementierung in der Programmiersprache Rust für Ubuntu verfügbar, und ab Ubuntu Version 25.10 wird die Implementierung in Rust als Standard bevorzugt.
Die Implementierung in Rust strebt Funktionsgleichheit mit der alten Implementierung an. Es können aber kleine Abweichungen auftreten. Dies bedeutet, dass das hier Beschriebene von der am eigenen Rechner vorgefundenen Situation abweichen kann.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
cat war ursprünglich zum Zusammenfügen von Dateien gedacht (von concatenate = verketten, verknüpfen). Häufig wird cat aber als (einfacher) Pager zum Anzeigen von Dateiinhalten im Terminal eingesetzt (was letztendlich dem "Verketten" von Dateiinhalten mit dem Bildschirm entspricht). Im Vergleich zu anderen Pagern wie more oder less ist cat weniger leistungsfähig.
Dafür eignet sich cat besser für kleine bzw. kurze Dateien und insbesondere zur Verwendung in Kombination mit Umleitungen (> und Pipe-Operator |), da cat den Dateiinhalt "in einem Rutsch" auf dem Terminal (bzw. genau genommen auf die Standardausgabe) ausgibt. Außerdem ist cat gut zum schnellen Anlegen von kleineren Dateien geeignet, als Alternative zu den "großen" Editoren wie z.B. VIM.
Installation¶
Bis Ubuntu 25.04 ist das Programm im essentiellen Paket coreutils enthalten und deshalb auf jedem System installiert. Diese Variante beruht auf den altbekannten GNU Core Utilities.
Ab 25.10 ist das Paket coreutils 🇬🇧 jedoch ein Metapaket, welches alternativ durch gnu-coreutils 🇬🇧 oder rust-coreutils 🇬🇧 oder weitere befriedigt werden kann.
Bei 25.10 und 26.04 installiert das Paket coreutils-from-uutils 🇬🇧 beide vorstehend genannten Pakete und aktiviert die rust-coreutils als Vorgabe. Siehe Artikel rust-coreutils zur Umstellung auf die GNU-Utilities.
Ab 26.10 soll aber coreutils-from-uutils nur noch die rust-coreutils installieren. Wer dann die alten gnu-coreutils verwenden will, muss coreutils-from-gnu 🇬🇧 manuell installieren.
Syntax¶
cat wird mit folgendem Syntax in einem Terminal [1] aufgerufen:
cat OPTIONEN DATEI(EN)
Mit cat können in einem Aufruf mehrere Dateien hintereinander angezeigt werden. Die Dateinamen müssen durch ein Leerzeichen getrennt sein. Der Befehl tac kehrt die Reihenfolge um, also die letzte Zeile zuerst.
Optionen¶
Der Befehl cat kennt verschiedene Optionen:
| cat - Optionen | |
| Option | Beschreibung |
-b oder --number-nonblank | Gibt eine Zeilennummer am Anfang jeder nicht-leeren Zeile aus |
-n oder --number | Gibt eine Zeilennummer am Anfang jeder Zeile aus - egal ob die Zeile leer ist oder nicht |
-E oder --show-ends | Gibt ein Dollarzeichen $ am Ende jeder Zeile aus |
-s oder --squeeze-blank | Die Ausgabe von zusätzlichen Leerzeilen wird unterdrückt, d.h. es wird maximal eine Leerzeile zwischen zwei Textzeilen angezeigt, auch wenn in der Datei mehrere Leerzeilen stehen sollten. |
-T oder --show-tabs | Tabulatoren werden als ^I angezeigt |
-v oder --show-nonprinting | Es werden alle Steuerzeichen außer LF (Linefeed) und Tabulatoren angezeigt |
-e | entspricht -vE |
-t | entspricht -vT |
-A oder --show-all | entspricht -vET |
--help | Hilfe anzeigen |
--version | Versionsnummer anzeigen |
Dateien mit cat anlegen¶
Erfolgt der Aufruf von cat ohne Angabe einer Datei, liest cat von der Standardeingabe (also in der Regel die Tastatur) und schreibt direkt auf die Standardausgabe (in der Regel den Bildschirm). Dateien lassen sich mit cat auch anlegen, indem man cat ohne Datei aufruft, die Ausgabe aber in eine Datei umleitet, z.B.:
cat > testdatei.txt lalala lalelu <EOF>
Die Eingabe beendet man mit der Markierung <EOF> (End of file) bzw. praktisch mit der Tastenkombination
Strg +
D .
cat testdatei.txt
lalala lalelu
Dateien mit cat zusammenführen¶
Wie oben bereits erwähnt, ist die eigentliche Funktion von cat das Zusammenführen von mehreren Dateien oder mit split aufgeteilten Dateien.
cat Seite_1.txt Seite_2.txt > text_komplett.txt
In diesem Beispiel werden die Textdateien seite_1.txt und seite_2.txt zusammengeführt, wobei seite_2.txt an seite_1.txt angehängt wird. Die Ausgabe wird in die Datei text_komplett.txt geschrieben.
cat Datei.zip.01 Datei.zip.02 > Datei_komplett.zip
In diesem Beispiel wird eine Zip-Datei wieder zu einer großen Datei zusammengeführt.
Überflüssige cats¶
Nicht verboten, aber überflüssig ist die Verwendung des Befehls beispielsweise in Kombination mit grep:
cat DATEINAME | grep SUCHBEGRIFF
Hintergrund: Programme wie grep oder less können Dateien selbst öffnen. Besser (und kürzer) ist daher der folgende Befehl, der das gleiche Ergebnis liefert:
grep SUCHBEGRIFF DATEINAME
Siehe auch den 🇬🇧 Useless Use of Cat Award.
Links¶
bat - eine modernisierte Variante von
cat, die zum Beispiel die Syntaxhervorhebung der Ausgabe beherrschtShell/Befehlsübersicht Übersicht über verschiedene Shell-Befehle