Art eines Terminalfensters auf einem Linux-Desktop

Fatmawati Achmad Zaenuri/Shutterstock.com

Die |_+_| und |_+_| Befehle zeigen den Inhalt von Textdateien an, aber sie haben mehr zu bieten, als man denkt. Tauchen Sie ein wenig tiefer ein und lernen Sie einige produktive Linux-Befehlszeilen-Tricks.



Dies sind zwei einfache kleine Befehle, die oft als genau das abgetan werden – zu einfach, um wirklich nützlich zu sein. Wenn Sie jedoch die verschiedenen Verwendungsmöglichkeiten kennen, werden Sie feststellen, dass sie bei der Arbeit mit Dateien einen angemessenen Teil der schweren Arbeit leisten können.

Das Katzenkommando

|_+_| wird benutzt um den Inhalt von Textdateien untersuchen , und Teile von Dateien zu einer größeren Datei zusammenzufügen.

Auf einmal – zurück in der Ära der Einwahl Modem —Binärdateien wurden oft in mehrere kleinere Dateien aufgeteilt, um das Herunterladen zu erleichtern. Anstatt eine große Datei herunterzuladen, haben Sie jede kleinere Datei zurückgezogen. Wenn eine einzelne Datei nicht korrekt heruntergeladen werden konnte, würden Sie diese eine Datei einfach erneut abrufen.

Natürlich brauchten Sie dann eine Möglichkeit, die Sammlung kleinerer Dateien wieder in die einzige funktionierende Binärdatei zu rekonstruieren. Dieser Vorgang wurde als Verkettung bezeichnet. Und das ist, wo |_+_| kam und woher es seinen Namen hat.

Anzeige

Breitband- und Glasfaserverbindungen haben dazu geführt, dass dieses besondere Bedürfnis nachgelassen hat – ähnlich wie kreischende Einwahlgeräusche – also was bleibt für |_+_| heute zu tun? Eigentlich ziemlich viel.

Anzeigen einer Textdatei

|_+_| . haben Listen Sie den Inhalt einer Textdatei in einem Terminalfenster auf, verwenden Sie den folgenden Befehl.

Stellen Sie sicher, dass die Datei eine Textdatei ist. Wenn Sie versuchen, den Inhalt einer Binärdatei im Terminalfenster aufzulisten, sind die Ergebnisse unvorhersehbar. Sie könnten mit einer gesperrten Terminalsitzung oder Schlimmerem enden.

cat

Der Inhalt der Datei poet1.txt wird im Terminalfenster angezeigt.

kann ich windows old löschen

Das ist nur die Hälfte des berühmten Gedichts. Wo ist der Rest? Hier gibt es eine weitere Datei namens poet2.txt. Wir können |_+_| . machen listet den Inhalt mehrerer Dateien mit einem Befehl auf. Alles, was wir tun müssen, ist die Dateien der Reihe nach in der Befehlszeile aufzulisten.

tac

Das sieht besser aus; Wir haben jetzt das ganze Gedicht.

Katze mit weniger verwenden

Das Gedicht ist alles da, aber es schoss zu schnell am Fenster vorbei, um die ersten paar Verse zu lesen. Wir können die Ausgabe von |_+_| . weiterleiten in |_+_| und scrollen Sie in unserem eigenen Tempo durch den Text.

cat

Anzeige

Wir können jetzt in einem Stream vorwärts und rückwärts durch den Text gehen, obwohl er in zwei separaten Textdateien gespeichert ist.

Nummerierung der Zeilen in einer Datei

Wir können die Zeilen in der Datei so nummerieren, wie sie angezeigt wird. Dazu verwenden wir die |_+_| (Zahl)-Option.

cat

Die Zeilen werden so nummeriert, wie sie im Terminalfenster angezeigt werden.

Wechsel von Lastpass zu Bitwarden

Keine Leerzeilen nummerieren

Wir haben es geschafft, die Zeilen mit |_+_| nummerieren zu lassen, aber auch die Leerzeilen zwischen den Versen werden gezählt. Um die Textzeilen zu nummerieren, aber die Leerzeilen zu ignorieren, verwenden Sie die |_+_| (Zahlen ohne Leerzeichen) Option.

cat

Jetzt werden die Textzeilen nummeriert und die Leerzeilen werden übersprungen.

Nicht mehrere Leerzeilen anzeigen

Wenn eine Datei Abschnitte mit aufeinanderfolgenden Leerzeilen enthält, können wir |_+_| . fragen alle bis auf eine leere Zeile ignorieren. Sehen Sie sich diese Datei an.

Anzeige

Der nächste Befehl verursacht |_+_| um nur eine Leerzeile von jedem Leerzeilenbündel anzuzeigen. Die Option, die wir dazu brauchen, ist die |_+_| (Squeeze-Blank)-Option.

cat

Dies wirkt sich in keiner Weise auf den Inhalt der Datei aus; es ändert nur die Art und Weise |_+_| zeigt die Datei an.

Registerkarten anzeigen

Wenn Sie wissen möchten, ob Leerzeichen durch Leerzeichen oder Tabulatoren verursacht werden, können Sie dies mit dem |_+_| . herausfinden (Tabs anzeigen) Option.

cat

Die Registerkarten werden durch die Zeichen ^I dargestellt.

Anzeigen der Zeilenenden

Sie können mit dem Befehl |_+_| . nach nachgestellten Leerzeichen suchen (Show-Ends) Option.

cat

Die Zeilenenden werden durch das $-Zeichen dargestellt.

Verketten von Dateien

Es macht keinen Sinn, ein Gedicht in zwei Dateien mit jeweils einer Hälfte zu speichern. Lassen Sie uns sie zusammenfügen und eine neue Datei mit dem gesamten Gedicht darin erstellen.

less

was ist ein epub buch

verwenden wir |_+_| um unsere neue Datei zu überprüfen:

-n

Anzeige

Unsere neue Datei enthält den Inhalt der anderen beiden Dateien.

Anhängen von Text an eine vorhandene Datei

Das ist besser, aber tatsächlich ist es nicht das ganze Gedicht. Der letzte Vers fehlt. Der letzte Vers in Jabberwocky ist der gleiche wie der erste Vers.

Wenn wir den ersten Vers in einer Datei haben, können wir ihn am Ende der Datei jabberwocky.txt hinzufügen, und wir haben das vollständige Gedicht.

In diesem nächsten Befehl müssen wir |_+_| verwenden, nicht nur |_+_|. Wenn wir ein einzelnes |_+_| . verwenden Gut überschreiben jabberwocky.txt. Das wollen wir nicht. Wir wollen anhängen Text ganz unten.

cat

Lassen Sie uns den Inhalt der Datei jabberwocky.txt überprüfen:

-b

Und schließlich sind alle Teile des Gedichts zusammen.

Umleitung von stdin

Mit |_+_| können Sie Eingaben von der Tastatur in eine Datei umleiten. Alles, was Sie eingeben, wird in die Datei umgeleitet, bis Sie Strg+D drücken. Beachten Sie, dass wir ein einzelnes |_+_| . verwenden weil wir die Datei erstellen (oder überschreiben, falls vorhanden).

cat

Anzeige

Wir können mit der Eingabe beginnen, sobald wir den Befehl eingeben. Wir drücken Strg+D, wenn wir fertig sind. Wir können dann den Inhalt der neuen Datei überprüfen mit:

cat

Dieses Geräusch wie eine weit entfernte Turbine ist wahrscheinlich Lewis Carroll, der sich mit hoher Geschwindigkeit in seinem Grab dreht.

Das tac-Kommando

|_+_| ähnelt |_+_|, listet jedoch den Inhalt von Dateien auf in umgekehrter Reihenfolge .

Sehen wir uns das an:

-s

Und die Datei wird in umgekehrter Reihenfolge im Terminalfenster aufgelistet. In diesem Fall hat es keinen Einfluss auf seine literarischen Verdienste.

Verwenden von tac mit stdin

Verwenden von |_+_| ohne Dateinamen führt dazu, dass es auf die Eingabe von der Tastatur reagiert. Wenn Sie Strg+D drücken, wird die Eingabephase gestoppt und tac listet in umgekehrter Reihenfolge auf, was Sie eingegeben haben.

cat

Wenn Strg+D gedrückt wird, wird die Eingabe umgekehrt und im Terminalfenster aufgelistet.

Verwenden von tac mit Protokolldateien

Abgesehen von minderwertigen Salontricks können |_+_| etwas Nützliches tun? Ja, kann es. Viele Protokolldateien hängen ihre neuesten Einträge am Ende der Datei an. Verwenden von |_+_| (und entgegen der Intuition |_+_|) können wir den letzten Eintrag in das Terminalfenster einfügen.

Anzeige

Wir verwenden |_+_| um die Syslog-Datei in umgekehrter Reihenfolge aufzulisten und in |_+_| zu leiten. Indem du |_+_| . sagst um nur die erste empfangene Zeile zu drucken (die dank |_+_| die letzte Zeile in der Datei ist), sehen wir den neuesten Eintrag in der Syslog-Datei.

-T

|_+_| druckt den neuesten Eintrag aus der Syslog-Datei und wird dann beendet.

Wie öffnet man eine mp3-Datei

Beachten Sie, dass |_+_| druckt nur eine Zeile – wie wir es angefordert haben –, aber die Zeile ist so lang, dass sie zweimal umbrochen wird. Deshalb sieht es im Terminalfenster wie drei Ausgabezeilen aus.

Verwenden von Tac mit Textaufzeichnungen

Der letzte Trick |_+_| hat im Ärmel ist eine Schönheit.

Normalerweise |_+_| arbeitet mit Textdateien, indem sie diese Zeile für Zeile von unten nach oben durcharbeitet. Eine Zeile ist eine Folge von Zeichen, die durch ein Zeilenumbruchzeichen abgeschlossen wird. Aber wir können sagen |_+_| mit anderen Trennzeichen zu arbeiten. Dies ermöglicht es uns, Datenblöcke innerhalb der Textdatei als Datensätze zu behandeln.

Nehmen wir an, wir haben eine Protokolldatei von einem Programm, die wir überprüfen oder analysieren müssen. Schauen wir uns das Format mit |_+_| an.

-E

Anzeige

Wie wir sehen können, gibt es ein sich wiederholendes Format für die Datei. Es gibt Folgen von drei Zeilen von hexadezimal Werte. Jeder Satz von drei hexadezimalen Zeilen hat eine Beschriftungszeile, die mit =SEQ beginnt, gefolgt von einer Ziffernfolge.

Wenn wir zum Ende der Datei scrollen, können wir sehen, dass viele dieser Datensätze vorhanden sind. Der letzte ist mit 865 nummeriert.

Nehmen wir an, wir müssen diese Datei aus welchem ​​Grund auch immer in umgekehrter Reihenfolge abarbeiten, Datensatz für Datensatz. Die Zeilenreihenfolge der drei hexadezimalen Zeilen in jedem Datensatz muss erhalten bleiben.

Beachten Sie, dass die letzten drei Zeilen in der Datei mit den Hexadezimalwerten 93, E7 und B8 in dieser Reihenfolge beginnen.

Verwenden wir |_+_| um die Datei umzukehren. Da es sich um eine sehr lange Datei handelt, werden wir sie in |_+_| umleiten.

cat

Das kehrt die Datei um, aber es ist nicht das Ergebnis, das wir wollen. Wir möchten, dass die Datei umgekehrt wird, aber die Zeilen in jedem Datensatz müssen in ihrer ursprünglichen Reihenfolge sein.

Anzeige

Wir haben zuvor aufgezeichnet, dass die letzten drei Zeilen in der Datei mit den hexadezimalen Werten 93, E7 und B8 beginnen, in dieser Reihenfolge. Die Reihenfolge dieser Zeilen wurde umgekehrt. Außerdem sind die =SEQ-Zeilen jetzt unter jeder Satz von drei hexadezimalen Zeilen.

Wie verwende ich Shadowplay?

|_+_| zur Rettung.

>>

Lassen Sie uns das aufschlüsseln.

Die |_+_| (Trennzeichen) Option informiert |_+_| was wir als Trennzeichen zwischen unseren Datensätzen verwenden möchten. Es sagt |_+_| nicht das übliche Newline-Zeichen verwenden, sondern stattdessen unser Trennzeichen.

Die |_+_| (regex) Option sagt |_+_| um die Trennzeichenfolge als a . zu behandeln regulären Ausdruck .

Die |_+_| (vorher) Option verursacht |_+_| um das Trennzeichen aufzulisten Vor nach jedem Datensatz statt nach ihm (das ist die übliche Position seines Standardtrennzeichens, des Zeilenumbruchzeichens).

Die |_+_| (Trennzeichen) Zeichenfolge |_+_| wird wie folgt entziffert:

Die |_+_| Zeichen steht für den Zeilenanfang. Darauf folgt |_+_|. Dies weist |_+_| . an um nach jedem Vorkommen von =SEQ zu suchen. am Anfang einer Zeile, gefolgt von einer beliebigen Ziffernfolge (angezeigt durch |_+_|) und gefolgt von einer beliebigen anderen Zeichenfolge (angezeigt durch |_+_|).

Wir leiten das Ganze wie gewohnt in |_+_| ein.

umgekehrtes Logfile mit korrekt gebildeten Datensätzen

Unsere Datei wird jetzt in umgekehrter Reihenfolge mit jeder aufgelisteten =SEQ-Labelzeile angezeigt Vor seine drei Zeilen mit hexadezimalen Daten. Die drei Zeilen mit hexadezimalen Werten stehen in ihrer Original Reihenfolge innerhalb jedes Datensatzes.

Anzeige

Wir können dies einfach überprüfen. Der erste Wert der ersten drei hexadezimalen Zeilen (das waren die letzten drei Zeilen, bevor die Datei umgekehrt wurde) stimmt mit den Werten überein, die wir zuvor aufgenommen haben: 93, E7 und B8, in dieser Reihenfolge.

Das ist ein ziemlicher Trick für einen Terminalfenster-Einzeiler.

Alles hat einen Zweck

In der Linux-Welt können selbst die scheinbar einfachsten Befehle und Dienstprogramme überraschende und leistungsstarke Eigenschaften haben.

Die Designphilosophie einfacher Utilities die machen eines gut , und die leicht mit anderen Dienstprogrammen zusammenarbeiten, hat zu einigen seltsamen kleinen Befehlen geführt, wie zum Beispiel |_+_|. Auf den ersten Blick erscheint es ein bisschen seltsam. Aber wenn Sie unter die Oberfläche blicken, gibt es eine unerwartete Kraft, die Sie zu Ihrem Vorteil nutzen können.

Oder, wie eine andere Philosophie sagt: Verachtet die Schlange nicht, weil sie keine Hörner hat, denn wer sagt, dass sie kein Drache werden soll?

Linux-Befehle
Dateien Teer · pv · Katze · tac · chmod · Griff · unterschied · sed · Mit · Mann · geschoben · popd · fsck · Testdisk · seq · fd · pandoc · CD · $PFAD · awk · beitreten · jq · falten · einzigartig · Journalctl · Schwanz · Zustand · ls · fstab · rauswerfen · weniger · chgrp · chown · rev · suchen · Saiten · Typ · umbenennen · Postleitzahl · entpacken · montieren · ummount · Installieren · fdisk · mkfs · rm · rmdir · rsync · df · gpg · wir · Nano · mkdir · von · ln · Patch · Konvertieren · rclon · Fetzen · SRM
Prozesse alias · Bildschirm · oben · nett · renice · Fortschritt · strace · System · tmux · chsh · Geschichte · beim · Charge · kostenlos · die · dmesg · Benutzermod · ps · chroot · xargs · tty · kleiner Finger · lsof · vmstat · Auszeit · Mauer · ja · töten · Schlaf · sudo · seine · Zeit · groupadd · Benutzermod · Gruppen · lshw · stilllegen · neu starten · halt · ausschalten · passwd · lscpu · crontab · Datum · bg · fg
Vernetzung netstat · Klingeln · Traceroute · ip · ss · Wer ist · fail2ban · bmon · Sie · Finger · nmap · ftp · Locken · wget · Wer · Wer bin ich · In · iptables · ssh-keygen · ufw

VERBUNDEN: Beste Linux-Laptops für Entwickler und Enthusiasten

WEITER LESEN