Rozlomeni linku pri prepisovani souboru

Josef Svoboda j.svoboda na phoenix.cz
Úterý Duben 3 15:07:42 CEST 2001


> BTW: Proc vymyslite program na nahrazovani retezce ? sed, awk, perl Vam
>      nestaci ?

sed, awk i perl se mi libi, ale muj programek je trosku jiny. Muze
vyhledavat v souboru vice retezcu najednou. Kazdy retezec tvori samostatne
pravidlo. Kdyz se urcity retezec najde, (1) zapise se vystupni retezec, (2)
zmeni se stav automatu, (3) preskoci se zbyla pravidla a vyhledava se znovu.
To se da napriklad vyuzit ve zjednodusenem prikladu vyhledavani
typografickych chyb (notaci ctete --<vzor>--<nahrada>-- <komentar>)

--\. --. --     tecka, za niz je mezera
--\.\n--.\n--   tecka, za niz je konec radku
--\.$$--.--     tecka, za niz konci soubor
--\.--.<!>--    pokud se vyskytne tecka v jinem kontextu, je to
pravdepodobne typograficka chyba

Automat se muze nachazet v ruznych stavech, cimz se da resit nahrazovani v
urcitem kontextu a pri zapornem cisle stavu se provadi mazani -- tim lze
napriklad odstranit komentare z html kodu. Pri jeho tvorbe jsem se
inspiroval malo znamou DOSovou utilitou scrub. Podobny pristup (skript
rizeny vyskytem vzoru) pouzivaji, pokud vim, take flex a omnimark.

Josef Svoboda





Další informace o konferenci Linux