GNU/Linux >> Znalost Linux >  >> Linux

Jak nahradit více mezer jedním tabulátorem

Chcete-li převést sekvence více než jedné mezery na kartu, ale nechat jednotlivá místa na pokoji :

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

Chcete-li to provést pro několik souborů:

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

nebo

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

nebo

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

Pokud má vaše postava více karet, můžete také použít tr -s :

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

Například:

my_file.txt | tr -s " "

Všechna bílá místa se stanou jedním.


Můžete použít sed k nahrazení počtu mezer tabulátorem.:

Příklad nahrazení jedné nebo více mezer jedním tabulátorem:

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

Linux
  1. Jak vyměnit vadný pevný disk v softwarovém RAID systému Linux

  2. Jak použít Sed k výměně víceřádkového řetězce?

  3. Jak přenosné jsou /dev/stdin, /dev/stdout a /dev/stderr?

  1. Výuka Unix Sed:Jak provádět více příkazů Sed

  2. Proč selže sed s mezinárodními znaky a jak to opravit?

  3. Jak nahradit řetězec ve více souborech v příkazovém řádku linuxu

  1. Jak nainstalovat více distribucí Linuxu na jedno USB

  2. Jak nahradit řetězec v souboru (souborech)?

  3. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?