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