複数のスペースのシーケンスを変換するには タブに移動しますが、個々のスペースはそのままにしておいてください :
sed 's/ \+ /\t/g' inputfile > outputfile
複数のファイルに対してこれを行うには:
for inputfile in *
do
sed 's/ \+ /\t/g' "$inputfile" > tmpfile && mv tmpfile "$inputfile"
done
または
for inputfile in *
do
sed -i.bak 's/ \+ /\t/g' "$inputfile"
done
または
find . -type f -exec sed -i.bak 's/ \+ /\t/g' {} \;
キャラクターが複数のタブの場合、 tr -s
も使用できます :
-s, --squeeze-repeats replace each input sequence of a repeated character
that is listed in SET1 with a single occurrence
例:
my_file.txt | tr -s " "
すべての空白が 1 つになります。
sed
を使用できます 多数のスペースをタブに置き換える:
1 つ以上のスペースを 1 つのタブに置き換える例:
cat spaced-file | sed 's/ \+/\t/g' > tabbed-file