我有以下json对象 -
{
"formatVersion": "v1.0",
"publicationDate": "2017-11-17T19:00:39Z",
"products": {
"HYZTQKMNAKH6FG9C": {
"sku": "HYZTQKMNAKH6FG9C",
"productFamily": "Compute Instance"
},
"2BEAK4F883TCCQMS": {
"sku": "2BEAK4F883TCCQMS",
"productFamily": "Compute2 Instance"
},
"7QJJXQX9QWC5GEPD": {
"sku": "7QJJXQX9QWC5GEPD",
"productFamily": "Compute3 Instance"
}
}
}
在jq的帮助下,我需要找出基于特定关键字搜索的所有sku,例如.productFamily == "Compute Instance"
。
我有以下jq过滤器,但它没有给我任何输出 -
jq --raw-output '.products.""| select(.productFamily=="Compute Instance") | .sku'
有人可以帮我这个吗?提前谢谢。
答案 0 :(得分:1)
将看起来很奇怪的.””
更改为[]
这已被证实适用于jq 1.3,1.4,1.5和当前的“主”版本,例如
jq1.3 '.products[] | select(.productFamily=="Compute Instance") | .sku' sku.json
"HYZTQKMNAKH6FG9C"
答案 1 :(得分:-1)
jq --raw-output '.products | map(select(.productFamily=="Compute Instance")) | .[].sku'