Website-Suche

Ersetzen Sie alle TAB-Zeichen durch Leerzeichen


Wenn Sie viele Tabulatorzeichen in einem Textdokument oder einer Programmdatei haben, können diese ärgerlich sein, da sie in verschiedenen Texteditoren unterschiedlich dargestellt werden. Wenn Sie beispielsweise Ihren Code an eine andere Person senden, wird er auf dem Bildschirm auf die gleiche Weise angezeigt wie auf Ihrem? Tabulatoren sind in dieser Hinsicht etwas unvorhersehbar, und Leerzeichen sind eine viel sicherere Wahl.

In dieser Anleitung zeigen wir, wie Sie unter Linux alle Tabulatorzeichen in einer Datei durch Leerzeichen ersetzen können. Wir können verschiedene Linux-Befehle verwenden, um die Arbeit für uns zu erledigen, auf die wir weiter unten eingehen werden. Abhängig von Ihrer Situation und der betreffenden Datei können einige Befehle besser geeignet sein als andere.

In diesem Tutorial lernen Sie:

  • So ersetzen Sie Tabulatorzeichen durch Leerzeichen

Ersetzen aller Tabulatorzeichen durch Leerzeichen unter Linux

Tabulatorzeichen durch Leerzeichen ersetzen

Sehen Sie sich einige der folgenden Beispiele an, um zu entscheiden, welchen Befehl Sie für Ihre Datei(en) ausführen möchten.

  1. Der folgende sed-Befehl ersetzt jedes Tabulatorzeichen durch fünf Leerzeichen. Dabei wird ein nativer Linux-Befehl verwendet, sodass keine zusätzliche Software erforderlich ist, Sie müssen jedoch einen neuen Namen für die Datei angeben.

    
    sed 's/\t/     /g' tab-file.txt > no-tab-file.txt
    

    Wie Sie in der Abbildung unten sehen können, hat die Datei mit den Leerzeichen für das menschliche Auge einen viel gleichmäßigeren Abstand.

  2. Ersetzen aller Tabulatorzeichen durch Leerzeichen unter Linux

  3. Um zu vermeiden, dass eine neue Datei erstellt wird, können Sie die Option -i (an Ort und Stelle) mit sed verwenden.

    
    sed -i 's/\t/     /g' tab-file.txt
    
  4. Um die Tabulatorzeichen in vielen Dateien zu ersetzen, z.B. in allen .txt Dateien in einem Verzeichnis, können Sie den Befehl sed mit einem Platzhalter verwenden.

    
    sed -i 's/\t/     /g' *.txt
    
  5. Um diesen Befehl rekursiv auszuführen, können wir den Befehl find verwenden. In diesem Beispiel werden alle Registerkarten in .txt Dateien ersetzt.

    
    find . -type f -name "*.txt" -exec sed -i 's/\t/     /g' {} \;
    
  6. Beachten Sie, dass es eine Handvoll anderer Befehlszeilentools gibt, die diese Aufgabe ebenfalls ausführen können, wie z. B. perl.

    
    perl -p -e 's/\t/     /g' tab-file.txt > no-tab-file.txt
    
  7. Oder nehmen Sie zum Beispiel diesen Erweiterungsbefehl, der nur führende Tabulatoren in jeder Zeile ersetzt und sie durch vier Leerzeichen ersetzt.

    
    expand -i -t 4 tab-file.txt > no-tab-file.txt
    

Abschließende Gedanken

In dieser Anleitung haben wir gesehen, wie man unter Linux alle Tabulatorzeichen durch Leerzeichen in einer Datei ersetzt. Wir sind in der Lage, dies mit dem nativen Befehl sed und rekursiv mit Hilfe von find zu tun. Es gibt auch die Dienstprogramme perl und expand, die diese Aufgabe ebenfalls erledigen können. Wie bei vielen Dingen unter Linux gibt es Hunderte von Möglichkeiten, diese einfache Aufgabe zu erfüllen. Wir haben Ihnen einige der einfachsten und besten Methoden gezeigt.

Verwandte Artikel: