web-dev-qa-db-ja.com

角かっこの間のすべてを削除するsedワンライナー?

角かっこ[]の間の不要なテキストで作業しています。ブラケットは自分で削除できるので、それを実行するためにワンライナーは必要ありませんが、それらの間のすべてを削除するワンライナーが必要です。

括弧の代わりに括弧()はどうですか?

16
ixtmixilix

[some text]を空の文字列に置き換えます。ネストされたブラケットを解析したくない場合、some textにブラケットを含めることはできません。

sed -e 's/\[[^][]*\]//g'

ブラケット式[^][]は、[または]以外に一致するため、]が最初に来る必要があることに注意してください。通常、]は文字セットを終了しますが、それがセットの最初の文字(ここでは、^補完文字の後)の場合、]はそれ自体を表します。

ネストされた括弧を解析したい場合、または括弧で囲まれたテキストが複数の行にまたがることがある場合、sedは適切なツールではありません。

コマンドsed -e 's/([^()]*)//g'は、角括弧の代わりに括弧を使用します。

9
ixtmixilix