jq tecla de impressão e valor para todos no sub-objeto

1

Eu encontrei este P / A com a solução para imprimir todas as chaves em um objeto:

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

No meu caso, quero realizar o acima, mas em um subobjeto:

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

Qual é a sintaxe adequada para fazer isso?

    
por Philip Kirkbride 22.11.2017 / 22:53

1 resposta

3

Basta direcionar para a função keys :

Amostra 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

A saída:

host1, 10.1.2.3
host2, 10.1.2.2
host3, 10.1.18.1
    
por 23.11.2017 / 00:12

Tags