#!/bin/bash jq -c 'def walk(f): . as $in | if type == "object" then reduce keys[] as $key ( {}; . + { ($key): ($in[$key] | walk(f)) } ) | f elif type == "array" then map( walk(f) ) | f else f end; def mapper(f): if type == "array" then map(f) elif type == "object" then . as $in | reduce keys[] as $key ({}; [$in[$key] | f ] as $value | if $value | length == 0 then . else . + {($key): $value[0]} end) else . end; walk( mapper(select((type == "object" and .properties.admin_level == "5") | not)) )' < Germany_AL4-AL6.GeoJson > G4+6.geojson