一対の角かっこの間にあるすべてのコンテンツを削除するには、1行を使用しますか?

一対の角かっこの間にあるすべてのコンテンツを削除するには、1行を使用しますか?

私は角かっこ[]の間に不要な内容で埋められたいくつかのテキストに取り組んでいます。角かっこを直接削除できるため、これを行うには1行のコードは必要ありませんが、その間のすべての項目を削除するには1行のコードが必要です。

大括弧の代わりに括弧()を使用するのはどうですか?

ベストアンサー1

[some text]空の文字列に置き換えられます。入れ子の括弧を解析したくない場合は、some text括弧を含めることはできません。

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

角かっこ式でまたは他の項目と[^][]一致するには、 が最初に来る必要があります。通常、aは文字セットを終了しますが、文字セットの最初の文字(ここでは補足文字の後)の場合、aはそれ自体を表します。[]]]^]

ネストされた角かっこを本当に解析したい場合、または角かっこ内のテキストが複数行にまたがる可能性がある場合、sedは正しいツールではありません。

おすすめ記事