JQ выбрать или заявление - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть следующий ввод json:

{
  "TagList": [
    {
      "Key": "Environment",
      "Value": "foo"
    },
    {
      "Key": "ENVIRONMENT",
      "Value": "bar"
    }
  ]
}

Я хочу получить значения тегов с помощью клавиши ОКРУЖАЮЩАЯ СРЕДА, используя jq:

jq -r '.TagList[] | select(.Key=="ENVIRONMENT") | .Value' input.json

Но как оказалосьключ также может быть Environment.Я пытаюсь получить оба с помощью этой команды:

jq -r '.TagList[] | select((.Key=="ENVIRONMENT") | .Value' or .Key=="Environment" | .Value)

, но получаю следующую ошибку:

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

Как получить оба этих тега?

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Немного обобщая:

.TagList[]
| select(.Key | ascii_upcase == "ENVIRONMENT").Value
0 голосов
/ 23 ноября 2018

Вы можете использовать следующую команду:

jq '.TagList[]|select(.Key=="Environment" or .Key=="ENVIRONMENT").Value'
...