232
232
sedでホワイトスペースをマッチさせるには?
sedでホワイトスペースをマッチさせるには?私のデータの中で、3文字以上の空白文字(タブスペース)をすべてマッチさせて、2文字の空白に置き換えたいです。これはどのようにしてできますか?
sedでホワイトスペースをマッチさせるには?私のデータの中で、3文字以上の空白文字(タブスペース)をすべてマッチさせて、2文字の空白に置き換えたいです。これはどのようにしてできますか?
文字クラス \s
は、空白文字 <tab>
と <space>
と一致します。
例えば:
$ sed -e "s/\s\{3,\}/ /g" inputFile
は、少なくとも 3 つの空白のすべてのシーケンスを 2 つの空白で置き換えます。POSIXに準拠するためには、[[:space:]]
の代わりに文字クラス\s
を使用してください。sed ](http://pubs.opengroup.org/onlinepubs/009695399/utilities/sed.html) と BREs の POSIX 仕様を参照してください。
これはMacOS 10.8で動作します:
sed -E "s/[[:space:]]+/ /g"
sed の古いバージョンによっては、スペースマッチトークンとして s を認識しない場合があります。その場合、1つ以上のスペースとタブのシーケンスを ‘[XZ][XZ]*’ でマッチさせることができます。