SED a nahrazeni retezce uvnitr napr. HTML tagu

Ales Horak hales na charon.fi.muni.cz
Pátek Leden 7 09:31:09 CET 2000


Leos Bitto <bitto na atrey.karlin.mff.cuni.cz> pise:
>Karel Fajkus (karel.fajkus na baywa.cz) wrote:
>: Karel Fajkus wrote:
>: > Leos Bitto <bitto na atrey.karlin.mff.cuni.cz> wrote in message
>: > > Zkuste toto: s/\(<[^>%]*\)%25/\1%/g
>: >
>: > To bohuzel neni ono, to nahradi naopak jen prvni vyskyt %25
>: 
>: A navic vlastne ani ten, pokud je pred nim jeste znak % s jinym nasl. retezcem
>: nez 25, takze treba v pripade:
>: zacatek bla bla <a href="neco.html?a=a%eeb%25cd&b=ef%25gh">klik</a> bla konec
>: Nenahradi ani jeden.
>
>Hmm, to uz vidim. Myslim si ze to nejde zapsat pomoci regularniho vyrazu,
>a tedy nepujde pouzit sed ani nic podobne jenoducheho. :-(

jenze on sed neni nic "jenoducheho", umi o dost vic nez jen regularni
vyrazy.

co treba tohle:

    $ cat p.sed
    #!/bin/sed -f
    :n
    s/\(<[^>]*\)%25/\1%/
    tn
    $ echo '<a href="neco.html?a=a%eeb%25cd&b=ef%25gh">klik</a>' | ./p.sed
    <a href="neco.html?a=a%eeb%cd&b=ef%gh">klik</a>


-- 
Ales Horak
Fakulta informatiky
Masarykova Univerzita Brno


Další informace o konferenci Linux