在jq中使用select with reduce?

时间:2019-01-16 09:20:06

标签: select jq reduce

如果我有一个简单的reduce表达式:

reduce inputs as $line
([]; . + [$line])

(这大致相当于--slurp:忽略它;这只是一个示例)

...但是我想以某种方式过滤inputs

我将select放在哪里?

2 个答案:

答案 0 :(得分:2)

我不确定我是否完全理解您的问题,但是我想这应该可以解决

reduce (inputs | select(Your_filter)) as $line
([]; . + [$line])

答案 1 :(得分:0)

在给定的特定情况下,一个更简单的解决方案是:

[inputs | select(...)]

实际上,经常可以简化使用reduce的解决方案,例如如此处所示或使用内置的归约过滤器之一(尤其是add)。

当然,当使用inputs来避免大声疾呼时,需要-n命令行选项。