如何在jq中执行`or`?
How to perform `or` in jq?
我得到了以下结果。
$ jq '.[].a,.[].b' <<< '[{"a": 1}, {"b": 2}]'
1
null
null
2
$ jq '.[] | select(.a or .b)' <<< '[{"a": 1}, {"b": 2}]'
{
"a": 1
}
{
"b": 2
}
但我想搜索 "a" 和 "b",我想要的输出是这样的。
1
2
执行此 or
操作的正确方法是什么?谢谢
您可以使用备用运算符 (//
):
$ jq '.[] | .a//.b' <<< '[{"a": 1}, {"b": 2}]'
1
2
我得到了以下结果。
$ jq '.[].a,.[].b' <<< '[{"a": 1}, {"b": 2}]'
1
null
null
2
$ jq '.[] | select(.a or .b)' <<< '[{"a": 1}, {"b": 2}]'
{
"a": 1
}
{
"b": 2
}
但我想搜索 "a" 和 "b",我想要的输出是这样的。
1
2
执行此 or
操作的正确方法是什么?谢谢
您可以使用备用运算符 (//
):
$ jq '.[] | .a//.b' <<< '[{"a": 1}, {"b": 2}]'
1
2