删除shell脚本中的括号

SeS*_*eSa 5 sed awk shell-script text-processing

我想创建机制来删除括号,或括号和它们之间的文本。例如:

前:

text0 text1 text2 (text3 text4)
Run Code Online (Sandbox Code Playgroud)

后:

text0 text1 text2 text3 text4
Run Code Online (Sandbox Code Playgroud)

或者:

text0 text1 text2
Run Code Online (Sandbox Code Playgroud)

我想测试两个选项和其他类型的括号,但我不确定我应该使用什么工具,Awk 或 Sed 还是其他工具?我将不胜感激任何建议。

cta*_*ac_ 5

为了保留文本,这就足够了:

tr -d '()'
Run Code Online (Sandbox Code Playgroud)

要删除文本和括号:

sed 's/([^)]*)//g;s/  / /g'
Run Code Online (Sandbox Code Playgroud)

如果文本包含嵌套括号,如:

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


G-M*_*ca' 4

你问题的另一半,只删除括号(但是不删除它们之间的文本):

echo 'text0 text1 text2 (text3 text4)' |
   sed 's/[()]//g'
Run Code Online (Sandbox Code Playgroud)

输出:

text0 text1 text2 text3 text4
Run Code Online (Sandbox Code Playgroud)