シェルスクリプトから角かっこを削除する

シェルスクリプトから角かっこを削除する

角かっこまたは角かっことその間のテキストを削除するメカニズムを作成したいと思います。たとえば、

今後:

text0 text1 text2 (text3 text4)

後ろに:

text0 text1 text2 text3 text4

または:

text0 text1 text2

これら2つのオプションと異なるタイプの角かっこをテストしたいのですが、Awk、Sed、または他のツールのいずれを使用するのかわかりません。どんな提案にも感謝します。

答え1

テキストを保存するにはこれで十分です。

tr -d '()'

テキストと括弧を削除するには:

sed 's/([^)]*)//g;s/  / /g'

テキストに入れ子になった角かっこが含まれている場合は、次のようになります。

echo 'text0 (text1 (textA )) text2 (text3 text4) test5' |
  sed -e :A -e 's/([^()]*)//;tA' -e 's/  / /g'

答え2

質問の残りの半分は角かっこを削除します(ただし、いいえの間にテキストがあります):

echo 'text0 text1 text2 (text3 text4)' |
   sed 's/[()]//g'

出力:

text0 text1 text2 text3 text4

関連情報