【问题标题】:Using select with reduce in jq?在jq中使用select和reduce?
【发布时间】:2019-01-16 09:20:05
【问题描述】:

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

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

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

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

select 应该放在哪里?

【问题讨论】:

  • 您在 blog.differentpla.net/blog/2019/01/11/jq-reduce 上的有用博文中有一个小错误。错误的句子是开头的“以下示例返回传递给它的最后一个值:”。您可以通过修改描述以匹配代码来修复它,反之亦然,但无论如何您可能想在 builtin.jq 中提及 last 的 def

标签: select jq reduce


【解决方案1】:

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

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

【讨论】:

  • 值得强调的是,此解决方案假定 jq 已使用 -n 命令行选项调用。
【解决方案2】:

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

[inputs | select(...)]

事实上,使用reduce 的解决方案经常会被简化,例如如此处或使用内置的缩减过滤器之一(特别是add)。

当然,当使用inputs 避免啜饮时,需要-n 命令行选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    • 2018-07-30
    • 2022-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    相关资源
    最近更新 更多