我正在使用 jq 尝试从 AWS CLI 查询中解析一些细节。
示例 JSON:
"Tags": [
{
"Key": "Name",
"Value": "db01"
},
{
"Key": "BackupResourceType",
"Value": "EC2"
},
{
"Key": "Role",
"Value": "db_edi01"
},
{
"Key": "OS",
"Value": "Ubuntu 18.04"
}
],
我遇到的问题是这些标签值的顺序不一致。有没有一种方法可以选择 key=OS 的值而不是选择特定的数组值?
[.InstanceId, .State.Name, .Tags[1].Value, .Tags[0].Value, etc]
感谢您的帮助!
也许最巧妙的方法是使用
from_entries
。例如。对于“OS”键:
.Tags | from_entries | .OS
更笼统但更冗长的是,您可以使用:
.Tags | first( .[] | select(.Key == "OS") | .Value)
或者如果您担心指定键不存在时的结果:
.Tags | first( .[] | select(.Key == "OS") // {} | .Value)