Correspondendo o texto entre <set>
e o seguinte <
. A barra invertida é necessária para remover o significado especial de &
para sed.
sed 's/<set>.*</<set>Tonight\'s Menu</' yourfile
Eu tenho uma carga de arquivos nfo que eu quero fazer algumas substituições globais para alguns valores dentro de cada arquivo
por exemplo,
a.nfo has the value <set>Tonight's Menu ( June 2012 )</set>
b.nfo has the value <set>Tonight's Menu ( April 2012 )</set>
c.nfo has the value <set>Speciel Menu ( April 2012 )</set>
Que eu quero fazer com que todos tenham o mesmo valor.
a.nfo has the value <set>Tonight's Menu</set>
b.nfo has the value <set>Tonight's Menu</set>
c.nfo has the value <set>Tonight's Menu</set>
Eu tenho esse código que está quase funcionando, mas não exatamente
find -name '*.nfo' -print -exec sed -i.bak "s@\(<set>\).*\(</set>\)@Tonight's Menu@" {} \;
no momento em que o resultado é
<set>Tonight<set>Tonight's Menu ( June 2012 )</set>apos;s Menu</set>
Correspondendo o texto entre <set>
e o seguinte <
. A barra invertida é necessária para remover o significado especial de &
para sed.
sed 's/<set>.*</<set>Tonight\'s Menu</' yourfile