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