0
我想通过通过标签[]选择这JSON outputJQ过滤器包括unfound选择
标记过滤,如果存在键显示所选择的值。
我的JQ过滤器看起来是这样的:
jq -r ".Reservations[]
| [.OwnerId,
.Instances[].InstanceId,
.Instances[].Placement.AvailabilityZone,
(.Instances[].Tags[]?|select(.Key==OtherTag)|.Value),
(.Instances[].Tags[]?|select(.Key==Name)|.Value) ]
| @csv"
输出看起来像这样
"xxxxxxxxxx9,i-d414ce0b,ap-southeast-2b,webserver2"
我想它包括毫无根据选择的标签,并在CSV填充它作为空场 象下面这样:
"xxxxxxxxxx9,i-d414ce0b,ap-southeast-2b,,webserver2"
我应该在JQ如何实现呢?有人能给我一个例子吗?
所以我在这里做了一点进步的解决方案。通过使用地图和选择。 '。保留[] | [.OwnerId,.Instances []。InstanceId,.Instances []。Placement.AvailabilityZone,(.Instances []。Tags | map(if(select(.Key ==“Name”))then .Value else“”end )),(.Instances []。Tags | map(if(select(.Key ==“OtherTag”)).Value else“”end))]'但是我现在结果为空数组[ 。无论如何将空数组转换为空值?基本上压缩该数组的所有值到一个字符串?希望这是有道理的 – hutanrimba