Suche…


Syntax

  • Katze [OPTIONEN] ... [DATEI] ...

Parameter

Möglichkeit Einzelheiten
-n Zeilennummern drucken
-v Nichtdruckzeichen in ^ und M-Notation anzeigen, außer LFD und TAB
-T TAB-Zeichen als ^ I anzeigen
-E Zeilenvorschub (LF) als $ anzeigen
-e Gleich wie -vE
-b Anzahl nicht leerer Ausgabezeilen überschreibt -n
-EIN entspricht -vET
-s wiederholt leere Ausgabezeilen unterdrücken, s bezieht sich auf Squeeze

Bemerkungen

cat kann sowohl Dateien als auch Standardeingaben lesen und diese mit Standardausgaben verketten

Inhalt einer Datei drucken

cat file.txt

druckt den Inhalt einer Datei.

Wenn die Datei Nicht-ASCII-Zeichen enthält, können Sie diese Zeichen mit cat -v symbolisch anzeigen. Dies kann in Situationen nützlich sein, in denen Steuerzeichen ansonsten unsichtbar wären.

cat -v unicode.txt

Sehr oft ist es für die interaktive Verwendung jedoch besser, einen interaktiven Pager wie less oder more . ( less ist weitaus leistungsfähiger als more und es wird empfohlen, less häufig als more .)

less file.txt

Um den Inhalt einer Datei als Eingabe an einen Befehl zu übergeben. Ein Ansatz, der normalerweise als besser ( UUOC ) betrachtet wird, ist die Verwendung der Umleitung.

tr A-Z a-z <file.txt   # as an alternative to cat file.txt | tr A-Z a-z

Falls der Inhalt von seinem Ende aus rückwärts aufgelistet werden muss, kann der Befehl tac verwendet werden:

tac file.txt

Wenn Sie den Inhalt mit Zeilennummern drucken möchten, verwenden Sie -n mit cat :

cat -n file.txt

Um den Inhalt einer Datei in einer völlig eindeutigen Byte-für-Byte-Form anzuzeigen, ist ein Hex-Dump die Standardlösung. Dies ist gut für sehr kurze Ausschnitte einer Datei, z. B. wenn Sie die genaue Codierung nicht kennen. Das Standard-Hex-Dump-Utility ist od -cH , die Darstellung ist jedoch etwas umständlich. xxd Ersetzungen umfassen xxd und hexdump .

$ printf 'Hëllö wörld' | xxd
0000000: 48c3 ab6c 6cc3 b620 77c3 b672 6c64       H..ll.. w..rld

Zeilennummern mit Ausgabe anzeigen

Verwenden Sie das Flag --number , um die Zeilennummern vor jeder Zeile zu drucken. Alternativ macht -n dasselbe.

$ cat --number file

 1  line 1
 2  line 2
 3
 4  line 4
 5  line 5

Um leere Zeilen beim Zählen zu überspringen, verwenden Sie --number-nonblank oder einfach -b .

$ cat -b file

 1  line 1
 2  line 2

 3  line 4
 4  line 5

Aus Standardeingabe lesen

cat < file.txt

Die Ausgabe entspricht der Datei cat file.txt , liest jedoch den Inhalt der Datei aus der Standardeingabe statt direkt aus der Datei.

printf "first line\nSecond line\n" | cat -n 

Der Echo-Befehl vor | gibt zwei Zeilen aus. Der Befehl cat wirkt auf die Ausgabe, um Zeilennummern hinzuzufügen.

Verketten Sie Dateien

Dies ist der Hauptzweck der cat .

cat file1 file2 file3 > file_all

cat kann auch auf ähnliche Weise verwendet werden, um Dateien als Teil einer Pipeline zu verketten, z

cat file1 file2 file3 | grep foo

In eine Datei schreiben

cat >file

Damit können Sie den Text auf das Terminal schreiben, der in einer Datei namens Datei gespeichert wird .

cat >>file

macht dasselbe, außer dass der Text an das Ende der Datei angehängt wird.

Hinweis: Strg + D zum Beenden des Schreibens von Text auf dem Terminal (Linux)


Ein Here-Dokument kann verwendet werden, um den Inhalt einer Datei in eine Befehlszeile oder ein Skript zu integrieren:

cat <<END >file
Hello, World.
END

Das Token nach dem << Umleitungssymbol ist eine beliebige Zeichenfolge, die allein in einer Zeile vorkommen muss (ohne führenden oder nachgestellten Leerraum), um das Ende des Dokuments anzuzeigen. Sie können Anführungszeichen hinzufügen, um zu verhindern, dass die Shell eine Befehlsersetzung und Variableninterpolation durchführt:

cat <<'fnord'
Nothing in `here` will be $changed
fnord

(Ohne die Anführungszeichen, here würde als ein Befehl ausgeführt werden, und $changed mit dem Wert der Variablen ersetzt werden würde changed -. Oder nichts, wenn es nicht definiert ist)

Nicht druckbare Zeichen anzeigen

Dies ist nützlich, um festzustellen, ob nicht druckbare Zeichen oder Nicht-ASCII-Zeichen vorhanden sind.

Wenn Sie den Code aus dem Internet kopiert haben, können Sie Anführungszeichen wie anstelle von Standard " .

$ cat -v file.txt
$ cat -vE file.txt # Useful in detecting trailing spaces.

z.B

$ echo '”     ' | cat -vE # echo | will be replaced by actual file.
M-bM-^@M-^]     $

Sie können auch cat -A (A für alle) verwenden, das cat -vET . Es werden TAB-Zeichen (angezeigt als ^I ), nicht druckbare Zeichen und das Ende jeder Zeile angezeigt:

$ echo '” `' | cat -A
M-bM-^@M-^]^I`$

Verketten Sie gzippte Dateien

Dateien, die mit gzip können direkt zu größeren gzip-Dateien verkettet werden.

cat file1.gz file2.gz file3.gz > combined.gz

Dies ist eine Eigenschaft von gzip , die weniger effizient ist als das Verketten der Eingabedateien und das Ausgeben des Ergebnisses:

cat file1 file2 file3 | gzip > combined.gz

Eine vollständige Demonstration:

echo 'Hello world!' > hello.txt
echo 'Howdy world!' > howdy.txt
gzip hello.txt 
gzip howdy.txt

cat hello.txt.gz howdy.txt.gz > greetings.txt.gz

gunzip greetings.txt.gz

cat greetings.txt

Was in ... resultiert

Hello world!
Howdy world!

Beachten Sie, dass greetings.txt.gz eine einzelne Datei ist und als einzelne Datei greeting.txt dekomprimiert wird. tar -czf hello.txt howdy.txt > greetings.tar.gz dies mit tar -czf hello.txt howdy.txt > greetings.tar.gz , wodurch die Dateien innerhalb des tar -czf hello.txt howdy.txt > greetings.tar.gz .



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow