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