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.




