假设我有以下内容:
jq 'map(select(. >= 5))'
给定[1,2,3,4,5,6,7]
,它将返回:
[5,6,7]
我也有
jq 'map(select(. < 5))'
如果给定相同的数据,则返回[1,2,3,4]
。我如何同时执行这些互补查询,以便我收到以下示例:
[1,2,3,4], [5,6,7]
发布于 2019-05-17 05:49:13
jq有一个内置的过滤器,用于按某种(可能是多值)标准进行分组:
jq -nc '[1,2,3,4,5,6,7] | group_by(. < 5)'
产生:
[[5,6,7],[1,2,3,4]]
发布于 2019-05-17 05:19:54
一种选择是使用reduce
reduce .[] as $x
([]; if $x < 5 then .[0] += [$x] else .[1] += [$x] end)
这将产生:
[[1,2,3,4],[5,6,7]]
https://stackoverflow.com/questions/56176686
复制相似问题