我找到了这个Q/A的解决方案来打印对象中的所有键:
jq -r 'keys[] as $k | "\($k), \(.[$k] | .ip)"'
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我想在子对象上执行上述操作:
jq -r '.connections keys[] as $k | "\($k), \(.[$k] | .ip)"'
Run Code Online (Sandbox Code Playgroud)
这样做的正确语法是什么?
Rom*_*est 32
简单的管道keys
功能:
样品input.json
:
{
"connections": {
"host1": { "ip": "10.1.2.3" },
"host2": { "ip": "10.1.2.2" },
"host3": { "ip": "10.1.18.1" }
}
}
Run Code Online (Sandbox Code Playgroud)
jq -r '.connections | keys[] as $k | "\($k), \(.[$k] | .ip)"' input.json
Run Code Online (Sandbox Code Playgroud)
输出:
host1, 10.1.2.3
host2, 10.1.2.2
host3, 10.1.18.1
Run Code Online (Sandbox Code Playgroud)