首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jq选择或语句

jq选择或语句
EN

Stack Overflow用户
提问于 2018-11-23 14:52:54
回答 2查看 8.2K关注 0票数 3

我有以下输入json:

代码语言:javascript
复制
{
  "TagList": [
    {
      "Key": "Environment",
      "Value": "foo"
    },
    {
      "Key": "ENVIRONMENT",
      "Value": "bar"
    }
  ]
}

我希望使用jq获取带有键环境的标记值。

代码语言:javascript
复制
jq -r '.TagList[] | select(.Key=="ENVIRONMENT") | .Value' input.json

但事实证明,关键也可能是Environment。我尝试使用以下命令来获得这两个命令:

代码语言:javascript
复制
jq -r '.TagList[] | select((.Key=="ENVIRONMENT") | .Value' or .Key=="Environment" | .Value)

但是,得到以下错误:

代码语言:javascript
复制
jq: error: syntax error, unexpected $end, expecting ';' or ')' (Unix shell quoting issues?) at <top-level>, line 1:
.TagList[] | select((.Key=="ENVIRONMENT") | .Value
jq: 1 compile error

怎么弄到这两个标签?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-23 15:14:10

您可以使用以下命令:

代码语言:javascript
复制
jq '.TagList[]|select(.Key=="Environment" or .Key=="ENVIRONMENT").Value'
票数 11
EN

Stack Overflow用户

发布于 2018-11-23 18:20:51

略为概括:

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

https://stackoverflow.com/questions/53448845

复制
相关文章

相似问题

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