JQ选择具有多个参数的过滤器

时间:2017-10-02 16:58:57

标签: json jq

然后给出遵循JSON

[
  {
    "id": "1",
    "name": "sausage",
    "value": 100
  },
  {
    "id": "2",
    "name": "spam",
    "value": 200
  },
  {
    "id": "3",
    "name": "eggs",
    "value": 300
  }
]

我可以选择id=3的单条记录:

jq '.[] | select(.id=="3") | .name,.value' data.json
### > "sausage"
### > "100"

但是如何选择多个id,即id in (1,2)项?

## this is something I wish I could do
jq '.[] | select(.id in ("1", "2") | .name,.value' data.json 

我试过了:

jq '.[] | select(.id=="1") or select(.id=="2") | .name,.value' data.json

但这会导致错误。

1 个答案:

答案 0 :(得分:5)

试试这个:

.[] | select(.id == "3" or .id == "2") | .name,.value

Demo