如何在 jq 查询中间调用 --stream?

How do I invoke --stream in the middle of a jq query?

我有一个由换行符分隔的 JSON 列表组成的文件,我想计算其中的总数。我可以通过两次调用 jq 来做到这一点:

cat file.nsj | jq -s ".[] | length" | jq -s "add"

但我更愿意在单个 jq 调用中执行此操作。这可能吗?

如果您的目标只是计算充满列表的文件中对象的数量,您可以这样做:

$ jq -n 'reduce inputs as $i (0; . + ($i | length))' file.nsj

这是 Jeff 解决方案的变体,它使用 -n 输入 长度 添加.

jq -n '[ inputs | length ] | add'  file.nsj