sed を使用して、角かっこで囲まれたテキストのすべてのインスタンスをドキュメントから削除しようとしているので、私のコードは次のとおりです。
sed -r 's|\[[^\]]*\]||g' file
ただし、これは角括弧で囲まれたテキストのすべてのインスタンスをピックアップしていないようです。特に、次の場合に失敗するようです。
[/a]
[/b]
[span style "blah" blah]
などですが、平文を囲む角括弧で機能します。私が知る限り、正規表現は ] ではない文字を囲む角かっこを探しているはずですが、何が間違っているのでしょうか?