Я знаю as
утверждение, но не могу понять, как его использовать, я думаю, что я должен сделать что-то вроде:
jq '
Reservations | .[].Instances as root
$root.Tags | .[] | select(.Key=="Name") | .Value ,
$root.BlockDeviceMappings | $root.[].Ebs.VolumeId
' file.json
Цель состоит в том, чтобы перебрать каждый экземпляр и отобразить Tags.Value
(выберите .Key=="Name"
) и .Ebs.VolumeId
.
Пример входного файла:
{
"Reservations": [
{
"Instances": [
{
"BlockDeviceMappings": [
{
"DeviceName": "/dev/xvda",
"Ebs": {
"DeleteOnTermination": true,
"VolumeId": "vol-fffffffffffff"
}
}
],
"Tags": [
{
"Value": "FOO - DEV - BAR - instance-name",
"Key": "Name"
}
]
}
],
"ReservationId": "r-xxxx"
},
{
"Instances": [
"another same kind of sub-objects with different values like above repeated"
]
}
]
}
Последний подобъект:
"Instances": [
"another same kind of sub-objects with different values like above repeated"
]
является поддельнымэто субобъект Instances
повторяется как первый с разными значениями для реального
Ожидаемый результат:
FOO - DEV - BAR - instance-name:vol-fffffffffffff