Wie man die ‚cat‘- und ‚tac‘-Befehle mit Beispielen in Linux verwendet

Dieser Artikel ist Teil unserer Serie Linux Tricks und Tipps, in diesem Artikel werden wir einige grundlegende Verwendungen des cat-Befehls (der am häufigsten verwendete Befehl in Linux) und tac (umgekehrter cat-Befehl – Dateien in umgekehrter Reihenfolge anzeigen) mit einigen praktischen Beispielen behandeln.

Weitere Artikel: 13 nützliche ‚cat‘-Befehlsbeispiele in Linux

Grundlegende Verwendung des Cat-Befehls in Linux

Der Befehl Concatenate, Abkürzung für Concatenate, ist einer der am häufigsten verwendeten Befehle in *nix-Systemen. Die grundlegendste Verwendung des Befehls besteht darin, Dateien zu lesen und ihren Inhalt auf stdout anzuzeigen, was bedeutet, den Inhalt von Dateien auf Ihrem Terminal anzuzeigen.

# cat file.txt
View Content of File in Linux

Eine weitere Verwendung des cat-Befehls besteht darin, mehrere Dateien zu lesen oder zu kombinieren und die Ausgabe auf einem Monitor anzuzeigen, wie in den folgenden Beispielen dargestellt.

# cat file1.txt file2.txt file3.txt
View Content of Multiple Files

Der Befehl kann auch verwendet werden, um (mehrere) Dateien mit dem Linux-Umleitungsoperator ">" in eine einzige Datei zu concatenieren (zu verbinden).

# cat file1.txt file2.txt file3.txt > file-all.txt
Join Multiple Files in Linux

Mit dem Anhänge-Umleiter können Sie den Inhalt einer neuen Datei am Ende der file-all.txt hinzufügen, wie in der folgenden Syntax gezeigt.

# cat file4.txt >> file-all.txt
Append Content File to New File

Der cat-Befehl kann verwendet werden, um den Inhalt einer Datei in eine neue Datei zu kopieren. Die neue Datei kann beliebig umbenannt werden. Zum Beispiel, kopieren Sie die Datei vom aktuellen Speicherort in das Verzeichnis /tmp/.

# cat file1.txt > /tmp/file1.txt 
Copy Content of File to New File

Kopieren Sie die Datei vom aktuellen Speicherort in das Verzeichnis /tmp/ und ändern Sie ihren Namen.

# cat file1.txt > /tmp/newfile.cfg
Copy File to /tmp Location

A less usage of the cat command is to create a new file with the below syntax. When finished editing the file hit CTRL+D to save and exit the new file.

# cat > new_file.txt
Create New File using Cat Command

Um alle Ausgabenzeilen einer Datei zu nummerieren, einschließlich leerer Zeilen, verwenden Sie den Schalter -n.

# cat -n file-all.txt
Add Numbers to Lines in File

Verwenden Sie den Schalter -b, um nur die Nummer jeder nicht leeren Zeile anzuzeigen.

# cat -b file-all.txt
Print Line Numbers in File

Möchten Sie mehr über den Linux-Befehl cat erfahren? Dann lesen Sie unseren Artikel über 13 nützliche Beispiele für den ‚cat‘-Befehl in Linux.

Erfahren Sie, wie Sie den Tac-Befehl in Linux verwenden

Andererseits ist ein weniger bekannter und weniger verwendeter Befehl in *nix-Systemen der tac-Befehl. Tac ist praktisch die umgekehrte Version des cat-Befehls (auch rückwärts geschrieben), der jede Zeile einer Datei von der untersten Zeile bis zur obersten Zeile auf Ihrem Maschinenstandardausgabe ausdruckt.

# tac file-all.txt
Print Content File in Reverse Order

Eine der wichtigsten Optionen des Befehls wird durch den Schalter -s dargestellt, der den Inhalt der Datei basierend auf einem String oder einem Schlüsselwort aus der Datei trennt.

# tac file-all.txt --separator "two"
Remove Matching String in File

Nächstes ist die wichtigste Verwendung des tac-Befehls, dass er eine große Hilfe beim Debuggen von Protokolldateien bieten kann, indem er die chronologische Reihenfolge der Protokollinhalte umkehrt.

$ tac /var/log/auth.log

Or to display the last lines

$ tail /var/log/auth.log | tac
Muster-Ausgabe
tecmint@tecmint ~ $ tac /var/log/auth.log
pr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
....
tecmint@tecmint ~ $ tail /var/log/auth.log | tac
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 15:55:02 tecmint CRON[17194]: pam_unix(cron:session): session closed for user root
Apr  6 15:55:01 tecmint CRON[17195]: pam_unix(cron:session): session closed for user root
...

Wie der Befehl cat erledigt auch tac ausgezeichnete Arbeit beim Bearbeiten von Textdateien, jedoch sollte er bei anderen Dateitypen vermieden werden, insbesondere bei Binärdateien oder Dateien, bei denen die erste Zeile das Programm angibt, das sie ausführen wird.

Source:
https://www.tecmint.com/learn-linux-cat-command-and-tac-command/