Bash
Mit katze
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
.