GNU/Linux >> Linux の 問題 >  >> Linux

複数のスペースを 1 つのタブに置き換える方法

複数のスペースのシーケンスを変換するには タブに移動しますが、個々のスペースはそのままにしておいてください :

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

Linux
  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. 国際文字で sed が失敗する理由とその修正方法は?

  3. Linux で /dev/one に相当するものを取得するにはどうすればよいですか

  1. LinuxソフトウェアRAIDで故障したハードディスクを交換する方法

  2. sed を使用して構成ファイルの変数を置き換える方法は?

  3. /dev/shm/ と /tmp/ はいつ使用する必要がありますか?

  1. 1つのUSBに複数のLinuxディストリビューションをインストールする方法

  2. ファイル内の文字列を置き換える方法は?

  3. Sedを使用して複数行の文字列を置き換える方法は?