GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So ersetzen Sie mehrere Leerzeichen durch einen Tabulator

Zum Konvertieren von Sequenzen mit mehr als einem Leerzeichen zu einem Tabulator, aber lassen Sie einzelne Leerzeichen in Ruhe :

sed 's/ \+ /\t/g' inputfile > outputfile

Um dies für eine Reihe von Dateien zu tun:

for inputfile in *
do
    sed 's/ \+ /\t/g' "$inputfile" > tmpfile && mv tmpfile "$inputfile"
done

oder

for inputfile in *
do
    sed -i.bak 's/ \+ /\t/g' "$inputfile"
done

oder

find . -type f -exec sed -i.bak 's/ \+ /\t/g' {} \;

Wenn Ihr Charakter aus mehreren Tabs besteht, können Sie auch tr -s verwenden :

-s, --squeeze-repeats   replace each input sequence of a repeated character
                        that is listed in SET1 with a single occurrence

Zum Beispiel:

my_file.txt | tr -s " "

Alle Leerzeichen werden zu einem.


Sie können sed verwenden mehrere Leerzeichen durch einen Tab ersetzen:

Beispiel zum Ersetzen eines oder mehrerer Leerzeichen durch einen Tabulator:

cat spaced-file | sed 's/ \+/\t/g' > tabbed-file

Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Wie portabel sind /dev/stdin, /dev/stdout und /dev/stderr?

  3. Unix Sed Tutorial:So führen Sie mehrere Sed-Befehle aus

  4. Warum schlägt sed mit internationalen Zeichen fehl und wie kann man das beheben?

  5. Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

So ersetzen Sie eine ausgefallene Festplatte in einem Linux-Software-RAID

So führen Sie mehrere Linux-Befehle in einem einzigen Befehl aus

So führen Sie unter Linux mehrere PDF-Dateien zu einem PDF zusammen

Wie finde ich heraus, aus welchem ​​Ordner ein Prozess läuft?

Wie kann ich Gnome daran hindern, Dokumente/Videos/in HOME zu erstellen?

Wie kann man Zeichen rekursiv durch sed ersetzen?