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