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
代わりに。