jqは、子オブジェクト内のすべてのコンテンツのキーと値を印刷します。

jqは、子オブジェクト内のすべてのコンテンツのキーと値を印刷します。

私はこれを見つけましたQ&Aオブジェクトのすべてのキーを印刷するソリューションを使用します。

jq -r 'keys[] as $k | "\($k), \(.[$k] | .ip)"' 

私の場合は、子オブジェクトに対して上記の操作を実行したいと思います。

jq -r '.connections keys[] as $k | "\($k), \(.[$k] | .ip)"'

これを行う正しい構文は何ですか?

ベストアンサー1

keysパイプを通して実行してみてください。

サンプルinput.json:

{
    "connections": {
        "host1": { "ip": "10.1.2.3" },
        "host2": { "ip": "10.1.2.2" },
        "host3": { "ip": "10.1.18.1" }
    }
}

jq -r '.connections | keys[] as $k | "\($k), \(.[$k] | .ip)"' input.json

出力:

host1, 10.1.2.3
host2, 10.1.2.2
host3, 10.1.18.1

おすすめ記事