GNU/Linux >> Linux Esercitazione >  >> Linux

Come sostituire più spazi con una scheda

Per convertire sequenze di più di uno spazio a una scheda, ma lascia stare i singoli spazi :

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

Per fare questo per un certo numero di file:

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

o

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

o

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

Se il tuo personaggio ha più schede puoi anche usare tr -s :

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

Ad esempio:

my_file.txt | tr -s " "

Tutti gli spazi bianchi diventeranno uno.


Puoi usare sed per sostituire un numero di spazi con una tab.:

Esempio per sostituire uno o più spazi con una scheda:

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

Linux
  1. Come sostituire un disco rigido guasto nel software RAID Linux

  2. Come sostituire una stringa in un file?

  3. Come utilizzare Sed per sostituire una stringa multilinea?

  4. Quanto sono portatili /dev/stdin, /dev/stdout e /dev/stderr?

  5. Tutorial Unix Sed:come eseguire più comandi Sed

Come eseguire più comandi Linux in un unico comando

Come unire più file PDF in un unico PDF in Linux

Come disabilitare Gnome dalla creazione di documenti/video/in HOME?

Come impostare la scheda su 4 spazi in vim?

Come sostituire in modo ricorsivo i caratteri con sed?

Sostituzione SED su più righe