[Talk-de] Relationen aus osm-Dateien herausfiltern

Steffen Wolf stw at gmx.de
Di Jan 19 11:24:25 UTC 2010


Hi Frederik Ramm,

> 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
>> --------

> Eine krude Form mit "sed" ginge so:

> bzcat bw.osm.bz2 | sed -e "1,/<relation/d" > bla.osm

> wobei Dir das die allererste "relation"-Zeile verschluckt, und ich bin
> nicht sed-Wizard genug, um es besser zu koennen ;-)

Wizard bin ich auch nicht, aber so klappts:

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 $

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


Fuer die, die mehr ueber sed lernen wollen, gibt's hier eine gute
Zusammenstellung von hilfreichen Befehlen:
 http://sed.sourceforge.net/sed1line.txt

cu,
 stw




Mehr Informationen über die Mailingliste Talk-de