python のワンライナーで、json の任意のキーの値を出力する
jq を使わないで行う方法です。
$ echo '{"hosts":[{"name":"host1"},{"name":"host2"}]}' | python -c "exec(\"import json,sys\\nj=json.load(sys.stdin)\\nfor attr in j.get('hosts'):\\n print attr.get('name')\")" host1 host2
python のコードに改行を入れると以下のとおりになります。
import json, sys j=json.load(sys.stdin) for attr in j.get('hosts'): print attr.get('name')
といった具合です。
shellscript で使えると思いますが、
python を使うなら全部 python で書いても良い気がします。
ただ、python から何度も shell のコマンドを呼び出す場合、
この方法の方が外部コマンドの呼び出し回数が少なくてパフォーマンスが良いかもしれません。
python だとモジュールを追加しなくても json モジュールが使えるので便利ですね。