$ sed ':again;$!N;$!b again; :b; s/{[^{}]*}//g; t b' file3
This is
that wants
anyway.
Explicação:
-
:again;$!N;$!b againIsto lê todo o arquivo.
:againé um rótulo.Nlê na próxima linha e$!Nlê na próxima linha na condição de que ainda não estamos na última linha.$!b againramifica de volta para o rótuloagaincom a condição de que essa não seja a última linha. -
:bIsso define um rótulo
b. -
s/{[^{}]*}//gIsso remove o texto entre chaves, desde que o texto não contenha chaves internas.
-
t bSe 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.