Извлеките значение ключа с помощью jq, если имя ключа совпадает с «Имя» - PullRequest
0 голосов
/ 02 декабря 2018

Мне нужно извлечь значение ключа с помощью jq, только если имя ключа Name.Ниже приведен пример.У меня есть некоторые 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

1 Ответ

0 голосов
/ 02 декабря 2018

Вы можете использовать select:

jq -r '.Snapshots[].Tags[] | select(.Key == "Name").Value'
...