Der Cat-Befehl ist einer der grundlegenden Befehle, die Sie gelernt haben, als Sie in die Unix-/Linux-Welt eingestiegen sind.
Sie wissen bereits, dass cat den Inhalt einer Datei anzeigt. Was könnte dieser Befehl noch tun?
Dieses Tutorial enthält 10 praktische Anwendungsbeispiele für den cat-Befehl. Wahrscheinlich könnten einige dieser Beispiele neu für Sie sein. Oder es könnte nur eine Auffrischung für Sie sein, falls Sie diese Beispiele bereits kannten.
1. Den Inhalt einer Datei anzeigen
Wenn Sie den Dateinamen als Argument an cat übergeben, zeigt es den Inhalt der Datei wie unten gezeigt an.
$ cat program.pl #!/usr/bin/perl if( 2 ge 3) { print "greater\n"; }else { print "lesser\n"; }
Sie können auch den Inhalt von mehr als einer Datei anzeigen, wie unten gezeigt.
$ cat program.pl program2.pl #!/usr/bin/perl if( 2 ge 3) { print "greater\n"; }else { print "lesser\n"; } #!/usr/bin/perl @arr = qw(1 2 3); $ref = \@arr; print ref $ref;
2. Erstellen Sie eine neue Datei
Mit dem cat-Befehl können die von stdin empfangenen Zeilen mithilfe von Umleitungssymbolen in eine neue Datei umgeleitet werden.
Wenn Sie einfach den cat-Befehl ohne Argumente eingeben, empfängt er nur den stdin-Inhalt und zeigt ihn in der stdout an. Nachdem Sie also die Zeile einmal eingegeben haben und die Eingabetaste drücken, wird dieselbe Zeile in der nachfolgenden Zeile gedruckt, wie unten zu sehen.
$ cat cat command for file oriented operations. cat command for file oriented operations. cp command for copy files or directories. cp command for copy files or directories.
Sie können die Standardausgabe auch wie unten gezeigt in eine neue Datei umleiten.
$ cat >cmd_usage.txt cat command for file oriented operations. cp command for copy files or directories. $ cat cmd_usage.txt cat command for file oriented operations. cp command for copy files or directories.
Manchmal müssen Sie den Inhalt möglicherweise an eine Datei anhängen, verwenden Sie das>> Umleitungssymbol wie unten gezeigt.
$ cat >>cmd_usage.txt ls command to list out file and directory with its attributes. $ cat cmd_usage.txt cat command for file oriented operations. cp command for copy files or directories. ls command to list out file and directory with its attributes.
3. Dateiinhalt kopieren
Umleitungssymbole in Unix spielen eine wichtige Rolle bei der Verarbeitung des Inhalts der Standarddateideskriptoren. Damit können Sie den Inhalt einer Datei in eine andere kopieren, wie unten gezeigt.
$ cat program.pl >backup_prgm.pl
Wie oben gesehen, wird der in der Standardausgabe angezeigte Inhalt, da wir die Ausgabeumleitung verwendet haben, in eine neue Datei namens backup_pgrm.pl geleitet. Zeigen Sie den Inhalt von backup_pgrm.pl an:
$ cat backup_pgrm.pl #!/usr/bin/perl if( 2 ge 3) { print "greater\n"; }else { print "lesser\n"; }
4. Inhalt mehrerer Dateien verketten
Mit dem cat-Befehl können Sie den Inhalt von mehr als einer Datei zu einer neuen Datei verketten.
Beispielsweise werden die Codes von program.pl und program2.pl in einer neuen Datei all_pgrm.pl kombiniert.
$ cat program.pl program2.pl >all_pgrm.pl
Wie oben zu sehen, wird stdout umgeleitet und die neue Datei wurde mit dem Inhalt von program.pl und program2.pl erstellt. Überprüfen Sie den Inhalt von all_pgrm.pl:
$ cat all_pgrm.pl #!/usr/bin/perl if( 2 ge 3) { print "greater\n"; }else { print "lesser\n"; } #!/usr/bin/perl @arr = qw(1 2 3); $ref = \@arr; print ref $ref;
5. Zeilennummern anzeigen
Um den Inhalt einer Datei mit der Zeilennummer vor jeder Zeile anzuzeigen, verwenden Sie die Option -n. Das folgende Beispiel gibt die Zeilennummer für die Zeilen aus program.pl,
aus$ cat -n program.pl 1 #!/usr/bin/perl 2 3 4 if( 2 ge 3) { 5 print "greater\n"; 6 } else { 7 print "lesser\n"; 8 } 9 10
Wie Sie oben bemerkt haben, sind sogar die leeren Zeilen nummeriert. Falls nur nicht leere Zeilen nummeriert werden sollen, verwenden Sie die Option -b wie folgt,
$ cat -b program.pl 1 #!/usr/bin/perl 2 3 if( 2 ge 3) { 4 print "greater\n"; 5 } else { 6 print "lesser\n"; 7 }
Beachten Sie, dass die Zeilen, die Leerzeichen enthalten, nicht als leere Zeilen betrachtet werden und dasselbe gilt für die Zeile mit der Nummer 2.
6. Dateiinhalte zusammen mit Eingaben von Stdin verketten
Es besteht die Möglichkeit, Zeilen aus stdin zusammen mit der Verkettung anderer Dateien zu lesen. Daher kann der Benutzer jederzeit seinen eigenen Inhalt eingeben.
Im folgenden Beispiel können Sie am Anfang ein paar Zeilen (von stdin) einfügen, während Sie Dateien zusammenfügen.
$ cat - program.pl program2.pl >all_pgrm.pl Contents from file : program.pl, program2.pl
Wie oben zu sehen ist – ist der Ort, an dem Sie von stdin lesen können, dementsprechend wurde 1 Zeile von stdin in den Anfang einer neuen Datei namens all_pgrm.pl mit dem letzteren Inhalt aus den Dateien program.pl und program2.pl eingefügt:
$ cat -n all_pgrm.pl 1 Contents from file : program.pl, program2.pl 2 #!/usr/bin/perl 3 4 5 if( 2 ge 3) { 6 print "greater\n"; 7 } else { 8 print "lesser\n"; 9 } 10 11 12 #!/usr/bin/perl 13 14 @arr = qw(1 2 3); 15 $ref = \@arr; 16 print ref $ref;
7. Keine wiederholten leeren Ausgabezeilen anzeigen
Manchmal enthält die Datei wiederholte leere Zeilen, die Sie nicht in der Standardausgabe anzeigen möchten, während Sie sie auflisten. Der cat-Befehl bietet eine Option namens -s, die aufeinanderfolgende leere Ausgabezeilen in eine unterdrückt und anzeigt.
Wie im ersten Verwendungsbeispiel 5 (d. h. Anzeige mit Zeilennummer vor jeder Zeile) bemerkt wurde, gibt es in der Datei program.pl zwei aufeinanderfolgende leere Ausgabezeilen mit den Nummern 9 und 10. Möglicherweise möchten Sie diese nicht anzeigen wiederholte leere Ausgabezeilen. Dies kann wie folgt unterdrückt werden:
# cat -sn program.pl 1 #!/usr/bin/perl 2 3 4 if( 2 ge 3) { 5 print "greater\n"; 6 } else { 7 print "lesser\n"; 8 } 9
Entsprechend werden die Zeilen 9 und 10 in der obigen Ausgabe zu einer leeren Zeile unterdrückt (z. B. Zeile 9).
8. Zeilenende- und TAB-Zeichen anzeigen
Sie können die Katze dazu bringen, das $-Zeichen am Ende jeder Zeile anzuzeigen. Normalerweise können Benutzer beim Auflisten von Dateiinhalten keine Leerzeichen am Ende jeder Zeile erkennen, indem sie die Option cat -e verwenden.
Verwenden Sie beispielsweise die Option -e für die Datei program.pl. Wie unten gezeigt, ist die dritte Zeile dieser Datei (d.h.:program.pl) eigentlich keine leere Zeile und auch die Zeile 7 endet jeweils mit Leerzeichen.
$ cat -ne program.pl 1 #!/usr/bin/perl$ 2 $ 3 $ 4 if( 2 ge 3) {$ 5 print "greater\n";$ 6 } else {$ 7 print "lesser\n"; $ 8 }$ 9 $ 10 $
Verwenden Sie die Option -T, um die Tabulatorzeichen anzuzeigen. Es zeigt ^I für das TAB-Zeichen an. Wie unten gezeigt, beginnen line5 und line7 mit einem TAB-Zeichen.
$ cat -neT program.pl 1 #!/usr/bin/perl$ 2 $ 3 $ 4 if( 2 ge 3) {$ 5 ^Iprint "greater\n";$ 6 } else {$ 7 ^Iprint "lesser\n"; $ 8 }$ 9 $ 10 $
9. Lesen Sie Inhalte bis zu einem bestimmten Muster
Das Here-Dokument kann zusammen mit dem cat-Befehl verwendet werden. Wenn Sie beispielsweise von stdin lesen, können Sie bis zu einer Zeile lesen, die ein bestimmtes Muster enthält. Im Beispiel unten wird der Zeilenblock von stdin gelesen (bis EOF) und auf der Standardausgabe ausgegeben.
$ cat <<EOF > mv command to move files and directories > top command to display linux tasks > EOF mv command to move files and directories top command to display linux tasks
10. Dateiinhalt umgekehrt anzeigen
Dieses Beispiel ist ein Betrüger. Dies ist wirklich kein Beispiel für einen Cat-Befehl, aber es ist verwandt.
tac ist die Umkehrung von cat. Wie Sie sich vorstellen können, zeigt tac den Inhalt einer Datei einfach in umgekehrter Reihenfolge an (Zeilen von unten werden zuerst angezeigt). Wenn Sie nur die Zeichen in der Zeile umkehren möchten, sollten Sie den Befehl rev verwenden.
Beispielsweise wird die Datei program.pl invers dargestellt als:
$ tac program.pl } print "lesser\n"; } else { print "greater\n"; if( 2 ge 3) { #!/usr/bin/perl