[Talk-de] Relationen aus osm-Dateien herausfiltern

Werner Hoch werner.ho at gmx.de
Di Jan 19 18:17:34 UTC 2010


Hallo Steffen,

On Dienstag, 19. Januar 2010, Steffen Wolf wrote:
> > Werner Hoch wrote:
> >> Derzeit verwende ich folgenden Workaround:
> >> --------
> >> bzip2 -dc bw.osm.bz2 | head -n 3 > bw_relations.osm
> >> bzip2 -dc bw.osm.bz2 | grep -A 100000 "<relation" >> bw_relations.osm
> >> --------
> 
> bzcat bw.osm.bz2 | sed -n -e '1,3p' -e '/<relation/,$p' >bw_relations.osm
> 
>         -n: gib nix aus
>         -e: was folgt ist Befehl und nicht Datei
>       1,3p: gib Zeilen 1-3 aus
> /suche/,$p: gib ab Suchergebnis bis letzter Zeile alles aus
>         '': die bash zerpflueckt sonst das $

Cool, danke.

Ich habe mal grep und sed verglichen:
werner at linux-m82i:~/osm> time bzcat bw.osm.bz2 | grep -A 100000 "<relation" >> /dev/null
real    0m55.945s
user    0m50.408s
sys     0m5.564s

werner at linux-m82i:~/osm> time bzcat bw.osm.bz2 | sed -n -e '1,3p' -e '/<relation/,$p' >> /dev/null
real    1m33.072s
user    1m48.933s
sys     0m5.316s

sed ist deutlich langsamer.

> Der Speicherverbrauch scheint sich im Rahmen zu halten, also
> Groessenordnung eine Zeile.

Das war zu erwarten.

Grüße
Werner




Mehr Informationen über die Mailingliste Talk-de