In diesem Handbuch werden wir über zwei weniger bekannte Linux-Befehle sprechen, nämlich Expand und Expansion aufheben mit praktischen Beispielen. Für diejenigen, die sich fragen, wird der Expand-Befehl verwendet, um TAB-Zeichen durch LEERZEICHEN in Dateien zu ersetzen, und der Unexpand-Befehl macht das Gegenteil, d. h. ersetzt LEERZEICHEN durch TAB-Zeichen in einer Datei. Tatsächlich hat MS-DOS auch einen Befehl namens "Expand", der verwendet wird, um eine komprimierte Datei zu expandieren. Aber der Linux-Expand-Befehl wandelt die Tabulatoren einfach in Leerzeichen um. Diese beiden Befehle sind Teil von GNU Coreutils und geschrieben von David MacKenzie .
Zu Demonstrationszwecken werde ich in diesem Handbuch eine Textdatei mit dem Namen "ostechnix.txt" verwenden.
Beispiele für Erweiterungsbefehle
Wie bereits erwähnt, ersetzt der Expand-Befehl TAB-Zeichen in einer Datei durch LEERZEICHEN.
Um Tabulatoren in Leerzeichen in einer Datei umzuwandeln, zum Beispiel "ostechnix.txt", und das Ergebnis mit dem Befehl in die Standardausgabe zu schreiben:
$ expand ostechnix.txt
Wenn Sie das Ergebnis nicht in der Standardausgabe anzeigen möchten, laden Sie es einfach in eine andere Datei wie unten hoch.
$ expand ostechnix.txt>output.txt
Wir können auch Tabulatoren in Leerzeichen umwandeln und von der Standardeingabe lesen. Führen Sie dazu einfach den Befehl „expand“ aus, ohne den Namen der Quelldatei anzugeben:
$ expand
Geben Sie einfach den Text ein und drücken Sie die EINGABETASTE, um Tabulatoren in Leerzeichen umzuwandeln. Drücken Sie STRG+C beenden.
Wenn Sie keine Tabulatoren nach Nicht-Leerzeichen konvertieren möchten, verwenden Sie -i kennzeichnen wie unten.
$ expand -i ostechnix.txt
Wir können auch Tabulatoren haben, die eine bestimmte Anzahl von Zeichen voneinander entfernt sind, nicht 8 (der Standardwert):
$ expand -t=5 ostechnix.txt
Sie können sogar mehrere Tabulatorpositionen durch Kommas getrennt wie unten angeben.
$ expand -t 5,10,15 ostechnix.txt
Oder,
$ expand -t "5 10 15" ostechnix.txt
Weitere Einzelheiten finden Sie in den Manpages.
$ man expand
Unexpand-Befehlsbeispiele
Die Expansion aufheben Der Befehl bewirkt das Gegenteil des Befehls Erweitern. Es konvertiert SPACE-Zeichen in TAB-Zeichen. Lassen Sie mich Ihnen ein paar Beispiele zeigen, um zu lernen, wie Sie den Befehl Unexpand verwenden.
Um Leerzeichen (natürlich Leerzeichen) in einer Datei in Tabulatoren umzuwandeln und die Ausgabe nach stdout zu schreiben, tun Sie Folgendes:
$ unexpand ostechnix.txt
Wenn Sie die Ausgabe in eine Datei schreiben möchten, anstatt sie nur auf stdout anzuzeigen, verwenden Sie diesen Befehl:
$ unexpand ostechnix.txt>output.txt
Wandeln Sie Leerzeichen in Tabulatoren um, indem Sie von der Standardausgabe lesen:
$ unexpand
Standardmäßig konvertiert der Befehl Unexpand nur die anfänglichen Leerzeichen. Wenn Sie alle Leerzeichen statt nur anfänglicher Leerzeichen konvertieren möchten, verwenden Sie -a Flagge:
$ unexpand -a ostechnix.txt
Um nur führende Sequenzen von Leerzeichen zu konvertieren (Bitte beachten Sie, dass es -a überschreibt ):
$ unexpand --first-only ostechnix.txt
Tabulatoren müssen eine bestimmte Anzahl von Zeichen voneinander entfernt sein, nicht 8 (ermöglicht -a ):
$ unexpand -t 5 ostechnix.txt
Ebenso können wir mehrere Tabulatorpositionen durch Kommas getrennt wie unten erwähnen.
$ unexpand -t 5,10,15 ostechnix.txt
Oder,
$ unexpand -t "5 10 15" ostechnix.txt
Weitere Einzelheiten finden Sie in den Manpages.
$ man unexpand
Empfohlene Lektüre:
- Das Fold-Befehls-Tutorial mit Beispielen für Anfänger
Wenn Sie an einer großen Anzahl von Dateien arbeiten, können die Befehle Expand und Unexpand sehr hilfreich sein, um unerwünschte TAB-Zeichen durch LEERZEICHEN zu ersetzen und umgekehrt.