Script na parsovani souboru kvuli internetovym adresam?
Alexei Sveshnikov
sveshnik na fzu.cz
Čtvrtek Duben 17 11:14:28 CEST 2003
> Dobry den,
Dobry den,
> marne hledam nejaky script, jedno v cem napsany, ale aby to bylo v jazyku,
> ktery je ve standartni RH9 distribuci a dalo se to pouzit v .procmailrc,
> ktery by umel asi toto:
>
> 1) Prohledat vstupni soubor a nalezt vsechny internetove adresy, ktere se v
> nem vyskytuji.
Na hledani regularnich vyrazu v souboru je dobry nastroj grep. Prislusny regularni
vyraz lze najit na manualove strance zminovaneho panem Pospichalem programu urlview:
(((https?|ftp|gopher)://|(mailto|file|news):)[^' <>"]+|(www|web|w3).[-a-z0-9.]+)[^' .,;<>":]
Pokud nepotrebujete ve vyslednem souboru mailove adresy, smazte retezec
mailto. Pak prikaz
egrep -oh "(((https?|ftp|gopher)://|(file|news):)[^' <>\"]+|(www|web|w3).[-a-z0-9.]+)[^' .,;<>\":]" vstup.txt
vyhleda vsechny vyskyty url v souboru vstup.txt.
> 2) Ulozit nalezene internetove adresy do vystupniho souboru tak, aby kazda
> byla na samostatnem radku (proste jednu za druhou hezky pod sebe)
Proste presmerujte vystup.
> 3) Pokud vystupni soubor jiz existuje, aby script provedl SEEK na konec toho
> souboru a pokracoval v zapisovani.
> 4) Pokud vystupni soubor neexistuje, aby zalozil novy a zapisoval...
egrep -oh "....." vstup.txt >> vystup.txt
> 5) Pokud je nejaka nalezena adresa jiz obsazena ve vystupnim souboru, aby se
> do nej nezapsala (aby nevzikaly duplicity).
To muzete udelat pomoci uniq. Napriklad,
(cat vystup.txt ; egrep -oh "...." vstup.txt) | sort | uniq >> temp.txt
rm vystup.txt
mv temp.txt vystup.txt
> Pokud nekdo neco takoveho mate, verte, ze bych to velice uvital...
>
> Moc dekuji za rady a namety (prosim, neradte mi hlavne, abych si to napsal
> sam, vubec bych sem nepsal, kdybych to umel).
>
> Krasny jarni vecer (nebo den, to podle toho, kdy si to kdo prectete) Vam
> vsem preje
Zdravi
Alexej Sveshnikov
Další informace o konferenci Linux