Linux / Befehl cat: Dateiinhalte anzeigen und zusammenfügen

Der Befehl cat schreibt den Inhalt von Dateien in die Standardausgabe und verkettet mehrere Dateien in der angegebenen Reihenfolge. Er ist ideal, um kurze Textdateien schnell zu lesen oder Datenströme zusammenzuführen, während less normalerweise eine bessere Wahl ist, um lange Dateien zu durchsuchen.

Der Name stammt von concatenate (verketten). Ohne Dateiangabe liest cat die Standardeingabe. Bei mehreren Dateien schreibt er jede Datei nacheinander, ohne einen zusätzlichen Trenner einzufügen. Er verändert seine Eingaben nicht, aber eine Shell-Umleitung kann die Zieldatei erstellen, kürzen oder überschreiben, bevor cat mit dem Lesen beginnt.

Ergänzende Befehle und Anwendungsfälle finden Sie in Essenzielle Linux-Befehle: Ein praktisches Nachschlagewerk nach Aufgabe.

Grundlegende Syntax

cat [OPTION]... [FILE]...

Optionen und Randfälle können je nach Implementierung und Version variieren. Überprüfen Sie cat --help und man cat auf dem Zielsystem, bevor Sie sich auf implementierungsspezifisches Verhalten verlassen.

Grundlegende cat-Verwendung

Eine Datei anzeigen

Verwenden Sie cat für eine kurze Datei, deren vollständiger Inhalt bequem im Terminal angezeigt werden kann.

cat /etc/os-release

Mehrere Dateien zusammenfügen

Die Eingaben werden in der Reihenfolge der Operanden geschrieben. Es wird automatisch keine Leerzeile oder Trennzeichen hinzugefügt.

cat part-01.txt part-02.txt

Kombiniertes Ergebnis speichern

Leiten Sie die Standardausgabe an ein neues Ziel um. Verwenden Sie niemals denselben Pfad sowohl als Eingabe als auch als truncierende Ausgabe.

cat chapter-1.txt chapter-2.txt > book.txt

Prüfen der Ergebnisse der Standardausgabe

cat gibt den Inhalt der Eingabedatei genau in der Reihenfolge aus. Das folgende Beispiel zeigt, wie man zwei Beispielszeilen erstellt und diese dann überprüft.

printf 'one\ntwo\n' > sample.txt
cat sample.txt

Beispielausgabe:

one
two

cat stoppt keine lange Datei nach Seiten, sodass die Ergebnisse schnell auf dem Bildschirm vorbeigehen können. Um den Inhalt zu durchsuchen, verwenden Sie less.

Wichtige Optionen

Option Zweck
-n Nummerieren Sie jede Ausgabzeile.
-b Nummerieren Sie nicht leere Zeilen und überschreiben Sie -n.
-s Fassen Sie wiederholte Leerzeilen zu einer zusammen.
-E Zeigen Sie am Ende jeder Zeile einen $-Markierer an.
-T Stellen Sie Tabulatorzeichen als ^I dar.
-A Zeigen Sie Tabs, Zeilenenden und andere nicht druckbare Zeichen an.

Praktische Beispiele

Eine Datei mit Zeilennummern überprüfen

Zeilennummern helfen, wenn eine Fehlermeldung auf eine bestimmte Zeile in einer Konfigurationsdatei hinweist.

cat -n app.conf

Versteckte Zeichen anzeigen

Verwenden Sie dies, wenn nachlaufende Wagenrückläufe, Tabs oder unerwartete Steuerzeichen ein Parsing-Problem verursachen könnten.

cat -A script.sh

Standardeingabe in eine Datei lesen

Drücken Sie Ctrl+D, um das Ende der Datei zu senden. Für umfangreichere Bearbeitungen verwenden Sie stattdessen einen Editor.

cat > memo.txt

cat und verwandte Befehle

Befehl Hauptrolle Geeignet für
cat Streams anzeigen oder zusammenfügen Kurze Dateien und Pipelines
less Interaktives Blättern und Suchen Lange Dateien
tac Datensatzreihenfolge umkehren Die neuesten Zeilen zuerst lesen
paste Entsprechende Zeilen zusammenführen Dateien als Spalten kombinieren

Wichtige Hinweise

Verwenden Sie less für große Dateien

Das Drucken einer großen Datei überflutet das Terminal und verbraucht den Bildlaufspeicher, ohne eine bequeme Navigation zu ermöglichen.

Leiten Sie eine Datei nicht auf sich selbst um

In cat file > file kann die Shell das Ziel verkürzen, bevor cat es zum Lesen öffnet.

Vermeiden Sie das Senden von Binärdaten an ein Terminal

Steuerbytes können die Anzeige stören. Untersuchen Sie Binärdaten stattdessen mit file, hexdump oder xxd.

FAQ

Verändert cat die Eingabedatei?

Nein. Der normale Betrieb ist nur lesend, obwohl Shell-Umleitungen den Ausgabeweg verändern können.

Fügt cat Trennzeichen zwischen Dateien hinzu?

Nein. Es schreibt die exakten Bytesequenzen hintereinander.

Wie zeige ich Zeilennummern an?

Verwenden Sie -n für alle Zeilen oder -b für nicht-leere Zeilen.

Soll ich cat für ein sehr langes Protokoll verwenden?

Sie können, aber less ist praktischer, wenn Sie Navigation und Suche benötigen.

Weitere Angaben zu Syntax, Implementierung und Verfügbarkeit finden Sie unter GNU Coreutils cat-Dokumentation.