A outra metade da sua pergunta excluindo apenas os parênteses (mas não o texto entre eles):
echo 'text0 text1 text2 (text3 text4)' |
sed 's/[()]//g'
Saída:
text0 text1 text2 text3 text4
Eu gostaria de criar um mecanismo para excluir parênteses ou parênteses e o texto entre eles. Por exemplo:
antes:
text0 text1 text2 (text3 text4)
depois:
text0 text1 text2 text3 text4
ou:
text0 text1 text2
Gostaria de testar as duas opções e outros tipos de colchetes, mas não tenho certeza de qual ferramenta devo usar, Awk ou Sed ou talvez outra coisa? Eu ficaria grato por qualquer conselho.
Para manter o texto, isso é suficiente:
tr -d '()'
Para excluir o texto e parênteses:
sed 's/([^)]*)//g;s/ / /g'
Se o texto contiver parênteses aninhados, como:
echo 'text0 (text1 (textA )) text2 (text3 text4) test5' |
sed -e :A -e 's/([^()]*)//;tA' -e 's/ / /g'