我正在尝试使用 jq 从 JSON 对象返回多个元素。数据来自 AWS cli 查找,这只是输出的一小部分:
{
"ReservedInstancesOfferings": [{
"OfferingClass": "convertible",
"OfferingType": "No Upfront",
"AvailabilityZone": "ap-southeast-2a",
"InstanceTenancy": "default",
"PricingDetails": [],
"ProductDescription": "Linux/UNIX",
"UsagePrice": 0.0,
"RecurringCharges": [{
"Amount": 0.167,
"Frequency": "Hourly"
}],
"Marketplace": false,
"CurrencyCode": "USD",
"FixedPrice": 0.0,
"Duration": 94608000,
"Scope": "Availability Zone",
"ReservedInstancesOfferingId": "1fc8c02b-bcc0-42b8-82ef-47c6f6d1c1b5",
"InstanceType": "c4.xlarge"
},
{
"OfferingClass": "convertible",
"OfferingType": "No Upfront",
"AvailabilityZone": "ap-southeast-2a",
"InstanceTenancy": "dedicated",
"PricingDetails": [],
"ProductDescription": "Red Hat Enterprise Linux",
"UsagePrice": 0.0,
"RecurringCharges": [{
"Amount": 0.243,
"Frequency": "Hourly"
}],
"Marketplace": false,
"CurrencyCode": "USD",
"FixedPrice": 0.0,
"Duration": 94608000,
"Scope": "Availability Zone",
"ReservedInstancesOfferingId": "24aaceee-f54e-4882-aba3-ce710a5036c9",
"InstanceType": "c4.xlarge"
}
]
Run Code Online (Sandbox Code Playgroud)
}
我正在尝试提取字段:
.ReservedInstancesOfferings[].ProductDescription
.ReservedInstancesOfferings[].InstanceType
.ReservedInstancesOfferings[].RecurringCharges[].Amount
Run Code Online (Sandbox Code Playgroud)
我希望输出看起来像这样:
"Red Hat Enterprise Linux"
"c4.xlarge"
0.183
Run Code Online (Sandbox Code Playgroud)
正如您在上面看到的,我了解如何单独提取所有元素,但我无法弄清楚如何将它们全部放在一起以获得所需的输出。我已经用逗号分隔查询,但这并没有提供所需的输出。
任何帮助将非常感激。
谢谢你!
编辑:
哦哦,我明白了!完整答案如下。男孩哦男孩jq太强大了!
希望这对某人有帮助:)
好的,所以我设法得到了我想要的东西。我仍然需要做一些整理工作,因为一些输入字段并不完全统一,但它已经足够接近,可以继续进行:
aws ec2 describe-reserved-instances-offerings --availability-zone "ap-southeast-2a" --instance-type "c4.xlarge" |
jq '.ReservedInstancesOfferings[] | [.ProductDescription, .InstanceType, .RecurringCharges[].Amount]'
Run Code Online (Sandbox Code Playgroud)
输出:
[
"Linux/UNIX",
"c4.xlarge",
0.167
]
[
"Red Hat Enterprise Linux",
"c4.xlarge",
0.243
]
[
"Red Hat Enterprise Linux",
"c4.xlarge",
0.227
]
[
"Linux/UNIX",
"c4.xlarge",
0.183
]
[
"SUSE Linux",
"c4.xlarge",
0.2
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2084 次 |
| 最近记录: |