我有一些JSON,如下所示:
{
"Vpcs": [
{
"VpcId": "vpc-1",
"OwnerId": "abc"
},
{
"VpcId": "vpc-2",
"OwnerId": "def"
}
]
}
我只想要使用OwnerId!=abc
的元素,但我希望保持Vpcs父数组的完整。
如果我做了echo $JSON|jq -r '.Vpcs[]|select(.OwnerId!="abc")
,我就会得到这个:
{
"VpcId": "vpc-2",
"OwnerId": "def"
}
这与我想要的接近,但它没有父数组。因此,我想也许我应该将父数组放在select语句中,如下所示:
echo $JSON |jq -r '.|select(.Vpcs[].OwnerId!="abc")'
但这似乎并没有过滤我想要的数据:
{
"Vpcs": [
{
"VpcId": "vpc-1",
"OwnerId": "abc"
},
{
"VpcId": "vpc-2",
"OwnerId": "def"
}
]
}
我如何得到这样的结果:
{
"Vpcs": [
{
"VpcId": "vpc-2",
"OwnerId": "def"
}
]
}
发布于 2020-01-30 13:06:33
如果“重建”您的结构是一种选择,您可以这样做
jq '.Vpcs[]|select(.OwnerId!="abc")|{Vpcs: [.]}'
https://unix.stackexchange.com/questions/564796
复制相似问题