SED a nahrazeni retezce uvnitr napr. HTML tagu

David Kuzela kuzela na mbox.vol.cz
Středa Leden 5 23:14:07 CET 2000


Karel Fajkus pise:
> Poradte prosim jak (SEDem) nahradit vsechny vyskyty retezce (napr. %25) uvnitr
> libovolneho tagu v HTML souboru; napr. radek:
> zacatek bla bla <a href="neco.html?a=ab%25cd&b=ef%25gh">klik</a> bla konec
> ma vypadat takto:
> zacatek bla bla <a href="neco.html?a=ab%cd&b=ef%gh">klik</a> bla konec
> 
> sed -e "s/\(<[^>]*\)%25/\1%/g" file
> sice funguje, ale jen pro posledni vyskyt, protoze sed je samozrejme velky
> zravec.

Je ten sed nutny? Jestli ne, tak tohle mi chodi:

twoflower:~$ echo '<href="neco.html?a=ab%25cd&b=ef%25gh">klik</a>' |\
             perl -ne ' $REG="(<[^>]*)%25"; while(s/$REG/\1%/g){}; print "\nVysledek: $_"'

Vysledek: <href="neco.html?a=ab%cd&b=ef%gh">klik</a>


Pokud na tom sedu trvate, budete muset vytvorit "vnorenou referenci". Napr: 

   twoflower:~$ echo "25abc25aaa"|sed -e 's/\(25\([abc]*\)\)*/\2/g'
   aaa

Problem je v tom, ze ted nevim, jak se dostat k tomu abc a nejsem si jisty, jestli
to vubec jde...

-- 
                                   David Kužela
==[Dawyd]======[icq]=[24470559]===================
 email:       kuzela na mbox.vol.cz   Student of VSE
 web:   http://penguin.cz/~dawyd   Czech republic
==================================================


Další informace o konferenci Linux