sedは4つのスペースを2に変換します。

sedは4つのスペースを2に変換します。

4つのスペースを2つのスペースに変換するにはsed?可能ですか?

これを見つけましたが、タブを空白に変換します。

sed -r ':f; s|^(\t*)\s{4}|\1\t|g; t f' file

ベストアンサー1

公開したスクリプトは、スペースの前にタブのみがある場合、4 * nスペースをnタブに変換します。

インデントのために4つのスペースを2つのスペースに置き換えたい場合は、sedを使用しても構いませんが、Perlを使用することをお勧めします。

perl -pe 's{^((?: {4})*)}{" " x (2*length($1)/4)}e' file

sedから:

sed -e 's/^/~/' -e ': r' -e 's/^\( *\)~    /\1  ~/' -e 't r' -e 's/~//' file

使いたいかもしれませんindent代わりに。

おすすめ記事