私は、角括弧[]で囲まれたテキストで作業しているが、これは望ましくない。自分でブラケットを削除できるので、それを行うためにワンライナーは必要ありませんが、それらの間のすべてを削除するワンライナーが必要です。
括弧ではなく括弧()についてはどうですか?
私は、角括弧[]で囲まれたテキストで作業しているが、これは望ましくない。自分でブラケットを削除できるので、それを行うためにワンライナーは必要ありませんが、それらの間のすべてを削除するワンライナーが必要です。
括弧ではなく括弧()についてはどうですか?
回答:
[some text]
空の文字列で置き換えます。ネストされた角かっこを解析したくsome text
ない場合、角かっこを含めることはできません。
sed -e 's/\[[^][]*\]//g'
ブラケット表現であること注[^][]
何かを一致させるが、[
または]
、]
最初に来なければなりません。通常、a ]
は文字セットを終了しますが、それがセットの最初の文字(ここでは、^
補完文字の後)である場合、]
それ自体を表します。
ネストされた角かっこを解析する場合、または角かっこで囲まれたテキストが複数行にわたる場合、sedは適切なツールではありません。
s/\[[^\[\]]*\]//g
(つまり、バックスラッシュを使用して文字セットのメンバーをエスケープします)。
[…]
=文字セット。^
最初の文字はセットを補完することを意味するため。]
通常、セットの終わりを示しますが、それが以外の最初の文字である場合^
、それは通常の文字です。空のセットまたは空のセットの補数は許可されません。その後[
は普通で]
、セットを終了します。
このコマンドsed -e 's/([^()]*)//g'
は、括弧の代わりに括弧を使用します。