#!/bin/bash # generate BioOSM compatible "springs" # Usage: studanky.sh osmdump.xml # # Download OSM file to be passed as $1 # wget "http://osm.kyblsoft.cz/archiv/czech_republic-2019-11-03.osm.gz" # gzip -kd ./czech_republic-2019-11-03.osm.gz # # Pozor ^^ sezere spoustu rameti # osm=$(cat "$1" | sed -e 's//<\/node\'$'\a/g' -e 's//<\/way>\'$'\a/g' -e 's//<\/relation>\'$'\a/g' | tr -d '\n' | tr '\a' '\n' | grep 'v="spring"' | grep 'k="natural"') json='{"version":"'$(date --rfc-3339=seconds)'","std":[' while IFS='' read -r spr || [[ -n "$spr" ]]; do n=$(echo "$spr" | grep -oPe 'k="name" v="[^"]*"' | sed -e 's/k="name" v="//g' -e 's/"$//g') lat=$(echo "$spr" | grep -oPe ' lat="[^"]*"' | sed -e 's/ lat="//g' -e 's/"$//g') lon=$(echo "$spr" | grep -oPe ' lon="[^"]*"' | sed -e 's/ lon="//g' -e 's/"$//g') if [ "$lat" = "" ] || [ "$lon" = "" ]; then continue; # a tak fi if [[ "$n" = "" ]]; then n="inkognito" >&2 echo -e "\033[34m $lat $lon \033[0m"; fi json+="{" json+=" \"name\":\"$n\"," json+=" \"lon\":\"$lon\"," json+=" \"lat\":\"$lat\"" json+="}," >&2 echo -e "\033[32m $n $lat $lon\033[0m" done <<< $(echo "$osm") echo "$json{}]}"