You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jq流式模式丢失首个元素:如何避免该问题?

解决jq 1.6流式模式首个数组元素id字段丢失问题

修正后的命令

将原命令中的inputs替换为input, inputs,即可正确保留首元素的id字段:

echo [{"id":482,"a":"2","b":1},{"id":483,"a":"3","b":2}] | jq -c --stream "fromstream(1|truncate_stream(input, inputs))"

执行后输出:

{"id":482,"a":"2","b":1}
{"id":483,"a":"3","b":2}

问题根源

jq 1.6中inputs函数的特性是跳过管道中的第一个输入值。在流式模式下,原命令的inputs会漏掉首个数组元素id对应的流式路径项(即[[0,"id"],482]),导致fromstream无法还原该字段。而input, inputs会包含所有流式输入项,包括第一个关键的id路径数据,从而完整还原每个对象的所有字段。

超大文件适配方案

针对100GB级别的大文件,直接将上述命令应用到文件输入即可,流式处理的性能不受影响:

jq -c --stream "fromstream(1|truncate_stream(input, inputs))" large_file.json

内容的提问来源于stack exchange,提问作者Niels Jespersen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 07:20:35