Linux unexpand Befehl erklärt für Anfänger (mit Beispielen)

Die Arbeit auf der Linux-Befehlszeile erfordert, dass Sie lernen, wie Sie einige sich wiederholende Aufgaben schnell ausführen können. Eine solche Aufgabe, an der Sie früher oder später beteiligt sein könnten, ist die Umwandlung von Leerzeichen in Tabs oder umgekehrt. In diesem Tutorial werden wir ein Kommandozeilenprogramm – genannt unexpand – besprechen, das in solchen Situationen eine große Hilfe sein wird.

Aber bevor wir anfangen, ist es erwähnenswert, dass alle Beispiele in diesem Artikel auf einem Ubuntu 16.04 LTS-Rechner getestet wurden.

Linux unexpand Befehl

Mit dem Befehl unexpand können Sie Leerzeichen in Registerkarten umwandeln. Folgendes ist seine Syntax:

unexpand [OPTION]... [FILE]...

Und so beschreibt es die Manualseite:

Convert blanks in each FILE to tabs, writing to standard output. With no FILE, or when FILE is -, read standard input.

Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine gute Vorstellung davon vermitteln sollen, wie der Befehl unexpand funktioniert.

Q1. Wie kann man den Befehl unexpand verwenden?

Angenommen, Sie haben eine Datei mit Text, die Registerkarten enthält. Nun, aus welchem Grund auch immer, konvertieren Sie diese Tabs mit dem Befehl expand in Leerzeichen, und jetzt wollen Sie Leerzeichen wieder in Tabs konvertieren, dann können Sie in diesem Fall den Befehl unexpand verwenden.

Zum Beispiel:

unexpand file1

Das Tool erzeugt die konvertierte Ausgabe auf stdout. Um es zu speichern, kannst du es also in eine Datei umleiten. Zum Beispiel:

unexpand file1 > file2

Es ist erwähnenswert, dass dieses Tool standardmäßig nur bei ersten Leerzeichen funktioniert. Sie können die Option -a verwenden, um dem Dienstprogramm mitzuteilen, dass Sie alle Leerzeichen in Tabs konvertieren möchten.

Q2. Wie erzwingt man die unvorhergesehene Konvertierung nur von initialen/führenden Leerzeichen?

Das Tool bietet eine Option, die es zwingt, nur anfängliche Leerzeichen oder Leerzeichen zu konvertieren (auch wenn die Option -a vorhanden ist). Die fragliche Option ist –first-only.

unexpand --first-only -a file1 > file2

Q3. Was bewirkt die Option -t?

Nun, die Option -t hat mehrere Rollen. Es akzeptiert entweder eine einzelne Zahl oder eine durch Komma getrennte Liste von Zahlen. Wenn Sie eine einzelne Zahl übergeben (z.B.’n‘), stellt der Befehl unexpand sicher, dass er Leerzeichen in der Datei alle Positionen von’n‘ in Registerkarten komprimiert.

Damit das Werkzeug beispielsweise alle 3 Positionen Rohlinge zu Laschen komprimiert, verwenden Sie diese Option wie folgt:

unexpand -t 3 file1 > file2

Wenn dieser Option hingegen eine kommandogetrennte Liste von Zahlen zugewiesen wird, platziert das Werkzeug die Registerkarte Stopps an diesen spezifischen Positionen.

unexpand -t 1,2,3 file1 > file2

Q4. Wie kann man die Leseeingabe von STDIN auf unbestimmte Zeit verlängern?

Das ist ziemlich einfach – führen Sie den Befehl einfach ohne Dateinamen als Eingabe aus (verwenden Sie Strg+D, um dem Dienstprogramm mitzuteilen, dass Sie fertig sind).

Hier ist, wovon ich rede:

unexpand

Fazit

Je nachdem, welche Art von Arbeit Sie ausführen, kann der Befehl unexpand eine große Hilfe sein. In diesem Tutorial haben wir die Mehrheit der Kommandozeilenoption, die dieses Tool bietet, diskutiert. Um mehr zu erfahren, gehe zu seiner Man Page.

Das könnte dich auch interessieren …