Se entendi corretamente sua pergunta, você está procurando
sed 's/\(pattern {[^}]*}\)/;/g'
onde substitui tudo o que corresponde a
\(...\)
.
A saída:
hello {sdsdsdsds} pattern {askjdasjkdjasd}; hello {siadsd} pattern {iuewer};
Se eu tiver algo parecido com isto:
hello {sdsdsdsds} pattern {askjdasjkdjasd} hello {siadsd} pattern {iuewer}
Se o padrão for correspondido antes de {*}
, preciso adicionar um ;
. Saída:
hello {sdsdsdsds} pattern {askjdasjkdjasd}; hello {siadsd} pattern {iuewer};
E isso é apenas uma linha, sim.
Agora, pensei em algo assim:
's{.*}/
Mas não consigo descobrir como fazer com que sed
se lembre do conteúdo de .*
.
Então existe isso,
'/pattern\ {.*}/ s/$/;/'
Mas isso não funcionará, já que é apenas uma linha.
Tags text-processing sed shell