Почтовые индексы Я хочу, чтобы перебирать в Баш над этой JSon строки (генерируемый jq
):перебрать JSon строки в Баш для создания
{
"hostname": "Arthhur",
"long": 10.234656,
"lat": 54.3454345
}
{
"hostname": "Zaphod",
"long": 10.12344324,
"lat": 54.35672134
}
...
генерировать Почтовые индексы от местоположения с помощью:
plz=`wget -qO - "http://maps.googleapis.com/maps/api/geocode/json?latlng=$lat,$lng&sensor=true"|grep '"[0-9][0-9][0-9][0-9][0-9]"'|head -n1`
plz=${plz##*\ :\ \"}
plz=${plz%%\"*}
Как я могу передать строку в цикл bash, поэтому я могу вызвать эту команду wget для каждого имени хоста, имея две переменные внутри цикла для long и lat?
Я не уверен, что вы вернетесь из своего первоначального вызова 'wget', но, полагая, что это строка json, просто используйте' while read -r your vars ...; сделать ... ваш синтаксический анализ ...; done <<($ (wget -qO - "http: //maps.googleapis.com ....)) Это просто стандартная подстановка процесса *, если я понял ваш вопрос. –
https://github.com/ dominictarr/JSON.sh является синтаксическим анализатором JSON в оболочке. – chicks
Не совсем уверен, почему здесь имеет место геокодирование api/zip? [Как разобрать json в bash] (http://stackoverflow.com/questions/1955505/parsing-json -with-sed-and-awk) – BroSlow