【发布时间】:2016-10-07 10:02:05
【问题描述】:
在 jq 的帮助下,我想选择属性列表中至少有一个 required=true 的节点的所有地址。结果列表应该有唯一的项目。
这是我的 Json:
{
"nodes": [
{
"address":"127.0.0.1",
"attributes": [
{
"id":"abc",
"required":true
},
{
"id":"def",
"required":true
},
{
"id":"ghi",
"required":false
}
]
},
{
"address":"127.0.0.2",
"attributes": [
{
"id":"abc",
"required":false
},
{
"id":"def",
"required":false
}
]
}
]
}
我第一次尝试:
jq '.nodes[] | select(.attributes[].required == true) | .address'
这会产生:
"127.0.0.1"
"127.0.0.1"
因此,它会获取在属性部分中找到的每个 required=true 字段的地址。如何使结果列表独一无二? jq 中还有一个独特的关键字,但我不知道这对我有什么帮助。
【问题讨论】: