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

如何从NDJSON文件中提取最后一个JSON对象?

解决NDJSON文件提取最后一个JSON对象的问题

问题原因

你之前的命令无效,是因为jq默认会逐行处理NDJSON的每个独立JSON对象:

  • [.][-1] 是把单个JSON对象包装成数组后取最后一个元素,结果还是原对象,所以会输出所有行
  • last(.) 对单个JSON对象执行last操作,返回的就是对象本身,同样会输出全部内容

解决方案

有两种常用方式:

方式1:用jq的--slurp(简写-s)选项

这个选项会将整个NDJSON文件的所有JSON对象合并成一个数组,之后再取最后一个元素:

cat toto.json | jq -s 'last'

或者等价的:

cat toto.json | jq -s '.[-1]'

方式2:用tail先取最后一行(更高效,适合大文件)

因为NDJSON的每个对象占一行,直接取最后一行就是最后一个JSON对象,再用jq格式化:

tail -n 1 toto.json | jq .

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 16:15:54