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

如何用Linux/Mac命令将多个多行JSON文件合并为单个NDJSON文件?

如何用Linux/Mac命令将多个多行JSON文件合并为单个NDJSON文件?

当然有,以下是几种实用的命令行方法,适用于Linux和Mac环境:

方法1:使用jq(推荐,专业处理JSON)

jq是专门的JSON处理工具,大部分Linux发行版自带,Mac可通过Homebrew安装(brew install jq)。执行以下命令即可完成转换合并:

jq -c '.' *.json > items.json
  • -c 参数:将多行JSON压缩为单行紧凑格式
  • *.json:匹配当前目录下所有JSON文件(可替换为具体文件名,比如item1.json item2.json)
  • > items.json:将结果输出到目标NDJSON文件

方法2:使用Python(无需额外安装工具)

系统自带的Python就能完成这个任务,执行如下命令:

python -c "import json, sys; [print(json.dumps(json.load(f))) for f in sys.argv[1:]]" *.json > items.json

脚本逻辑:逐个读取传入的JSON文件,解析为JSON对象后再转成单行字符串输出,最终合并到目标文件。

方法3:使用awk(适合结构简单的JSON)

如果你的JSON结构简单(无含换行的字符串值等),可以用awk快速处理:

awk 'NF {printf "%s", $0} ENDFILE {print ""}' *.json > items.json
  • NF {printf "%s", $0}:跳过空行,将每行内容拼接成单行
  • ENDFILE {print ""}:每个文件处理完后添加换行,保证每个JSON对象占一行

示例输入

item1.json:

{
  "type": "Feature",
  "version": "1.0.0",
  "id": "item1"
}

item2.json:

{
  "type": "Feature",
  "version": "1.0.0",
  "id": "item2"
}

执行命令后得到的items.json

{"type": "Feature", "version": "1.0.0", "id": "item1"}
{"type": "Feature", "version": "1.0.0", "id": "item2"}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:03:20