[Talk-cz] jizdni rady: uzitecny parser
Marián Kyral
mkyral na email.cz
Středa Září 2 21:06:57 UTC 2015
Dne 2.9.2015 v 11:53 Pavel Machek napsal(a):
> Ahoj!
>
>> Koukám na to rozbalování, máme to plus mínus stejně. Ale než tahle hala bala
>> se mi více líbí rozbalení do struktury
>>
>> <dopravce>/<linka>/
>>
>>
>>
>>
>> To už mám rozvrtáno, večer dokončím a pošlu. Jediný problém na který jsem
>> narazil bylo, že někteří dopravci mají ve svém jméně čárku, takže cut -d ","
>> mi vrátil jen kousek. To se dá vyřešit přes cut -d '"'. Jenže to mně napadlo
>> až teď ráno ;-)
> Ono by to chtelo poradne parsovat CSV...
>
>> No a pak ještě ze zména dopravce buď úplně odstranit diakritiku, nebo ji
>> převést z cp1250 do utf-8 (iconv -f cp1520 -t utf-8)
> Nastesti ten python si s charsetama celkem rozumi... tohle bylo
> nakonec rychle.
>
> Pridal jsem opravdovy parser, otaceni linek, a castecne parsovani
> poznamek.
>
> Rozhodnout se podle toho jejich systemu, ktery dny to teda jede bude
> jeste na dlouho.
>
> Kazdopadne kod je tady...
>
> http://timetab.cvs.sourceforge.net/viewvc/timetab/timetab/cz/cis/
>
> ...a je dost zajimave videt jak maji ta data udelana "doopravdy".
>
> Pavel
Moc pěkné. Zatím nevím, jestli mi to k něčemu bude, ale je to fakt pěkné :-D
Já mezitím splácal skript, který ta čísílka trochu přeorganizuje:
$ ls -la Dopravní\ podnik\
Dopravní podnik hl.m. Prahy, a.s./ Dopravní podnik
města České Budějovice, a.s./ Dopravní podnik města Olomouce,
a.s./ Dopravní podnik měst Chomutova a Jirkova a.s./
Dopravní podnik Karlovy Vary, a.s./ Dopravní podnik
města Děčína, a.s./ Dopravní podnik města Pardubic
a.s./ Dopravní podnik měst Liberce a Jablonce nad
Nisou, a.s./
Dopravní podnik Kněžmost, s.r.o./ Dopravní podnik
města Hradce Králové, a.s./ Dopravní podnik města Ústí nad
Labem a.s./ Dopravní podnik Mladá Boleslav, s.r.o./
Dopravní podnik města Brna, a.s./ Dopravní podnik
města Jihlavy, a.s./ Dopravní podnik Města Vlachovo
Březí, s.r.o./ Dopravní podnik Ostrava a.s./
$ ls -la Dopravní\ podnik\ města\ Děčína\,\ a.s./
celkem 328
drwxr-xr-x 17 marian users 4096 2. zář 22.18 .
drwxr-xr-x 240 marian users 266240 2. zář 22.59 ..
drwxr-xr-x 2 marian users 4096 2. zář 22.09 515001
drwxr-xr-x 2 marian users 4096 2. zář 22.09 515002
drwxr-xr-x 2 marian users 4096 2. zář 22.13 515004
drwxr-xr-x 2 marian users 4096 2. zář 22.14 515005
drwxr-xr-x 2 marian users 4096 2. zář 22.13 515006
drwxr-xr-x 2 marian users 4096 2. zář 22.09 515007
drwxr-xr-x 2 marian users 4096 2. zář 22.13 515008
drwxr-xr-x 2 marian users 4096 2. zář 22.08 515009
drwxr-xr-x 2 marian users 4096 2. zář 22.10 515010
drwxr-xr-x 2 marian users 4096 2. zář 22.07 515012
drwxr-xr-x 2 marian users 4096 2. zář 22.18 515014
drwxr-xr-x 2 marian users 4096 2. zář 22.08 515017
drwxr-xr-x 2 marian users 4096 2. zář 22.16 515032
drwxr-xr-x 2 marian users 4096 2. zář 22.08 515033
drwxr-xr-x 2 marian users 4096 2. zář 22.08 515037
$ cat organize.sh
#!/bin/bash
ls -1d [0-9]* |sort -n |while read D;
do
Dopravce=$(cat $D/Dopravci.txt |head -n 1 |iconv -f cp1250 -t
utf-8|cut -d '"' -f 6);
Linka=$(cat $D/Linky.txt |cut -d '"' -f 2);
DR="${Dopravce}/${Linka}";
echo "$D: $DR"
mkdir -p "$DR";
ls -1 $D/*.txt |while read FTX;
do
cat $FTX |iconv -f cp1250 -t utf-8 > "$DR/$(basename $FTX)";
done;
done
Kdo nechce převádět soubory do utf-8 nechť si laskavě ve třetím řádku
odspodu nahradí cat |iconv ... za mv.
Marián
Další informace o konferenci talk-cz