仅当键名称为Name
时,我才需要使用jq提取键值。下面是一个例子。我有一些AMI,它们的键名没有Name
,我想忽略它们。
aws ec2 describe-snapshots --snapshot-id snap-123 --region eu-west-1 --profile myprofile
{
"Snapshots": [
{
"Description": "AMI upgrader",
"Tags": [
{
"Value": "AMI upgrader",
"Key": "Name"
}
],
"Encrypted": false,
"VolumeId": "vol-9356e811",
"State": "completed",
"VolumeSize": 20,
"StartTime": "2018-05-31T13:58:31.000Z",
"Progress": "100%",
"OwnerId": "1234",
"SnapshotId": "snap-1234"
}
]
}
我已经尝试过了
aws ec2 describe-snapshots --snapshot-id snap-123 --region eu-west-1 --profile myprofile | jq -r '.Snapshots[].Tags[]|.Name?.Value'
但是它返回null
答案 0 :(得分:2)
您可以使用select
:
jq -r '.Snapshots[].Tags[] | select(.Key == "Name").Value'