首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jq,选择多个键并在数组中返回它们

使用jq,选择多个键并在数组中返回它们
EN

Stack Overflow用户
提问于 2018-08-22 15:44:31
回答 1查看 3.6K关注 0票数 1

给定这个数组:

代码语言:javascript
复制
[{"Key":"base_ami","Value":"ami-46d003ac"},
{"Key":"app","Value":"amibuild"},
{"Key":"sbu","Value":"IT"},
{"Key":"base_ami_image_location","Value":"123456789012/amazon-linux"},
{"Key":"app_env","Value":"dev"},
{"Key":"Name","Value":"amazon-linux"},
{"Key":"jenkins_build_id","Value":"24"},
{"Key":"os_type","Value":"linux"},
{"Key":"version","Value":"1.0.24"}]

我要这个输出:

代码语言:javascript
复制
[{"Key":"app","Value":"amibuild"},{"Key":"sbu","Value":"IT"},{"Key":"app_env","Value":"dev"}]

我已经把它写到这里了:

代码语言:javascript
复制
.[] | select(.Key == "app"), select(.Key == "app_env"), select(.Key == "sbu")

但结果是:

代码语言:javascript
复制
{"Key":"app","Value":"amibuild"}
{"Key":"sbu","Value":"IT"}
{"Key":"app_env","Value":"dev"}

我需要这些单独的对象作为数组的元素返回。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-22 22:09:46

只需将结果包装在[...]中即可。

代码语言:javascript
复制
[.[] | select(.Key == "app"), select(.Key == "app_env"), select(.Key == "sbu")]

您还可以稍微缩短这个过滤器:

代码语言:javascript
复制
[.[] | select(.Key == "app" or .Key == "app_env" or .Key == "sbu")]

或者使用map函数:

代码语言:javascript
复制
map(select(.Key == "app" or .Key == "app_env" or .Key == "sbu"))
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51970546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档