$ sed ':again;$!N;$!b again; :b; s/{[^{}]*}//g; t b' file3
This is
that wants
anyway.
Explicação:
-
:again;$!N;$!b again
Isto lê todo o arquivo.
:again
é um rótulo.N
lê na próxima linha e$!N
lê na próxima linha na condição de que ainda não estamos na última linha.$!b again
ramifica de volta para o rótuloagain
com a condição de que essa não seja a última linha. -
:b
Isso define um rótulo
b
. -
s/{[^{}]*}//g
Isso remove o texto entre chaves, desde que o texto não contenha chaves internas.
-
t b
Se o comando substituto acima resultou em uma alteração, retorne ao rótulo
b
. Desta forma, o comando substituto é repetido até que todos os grupos de chaves sejam removidos.