如何修复未添加数组括号的超大错误JSON文件
修复缺少首尾方括号的大型JSON文件
针对你20GB的大型JSON文件(仅包含逗号分隔的JSON对象序列,缺少数组首尾方括号),以下是无需加载整个文件到内存的高效修复方案:
方案一:用cat+echo流式拼接(简单易操作)
通过分步追加内容生成修复后的文件,全程流式处理,不会占用大量内存:
# 初始化修复文件,写入数组开头的方括号 echo "[" > fixed.json # 将原文件内容追加到修复文件 cat your-broken-file.json >> fixed.json # 在修复文件末尾写入数组结尾的方括号 echo "]" >> fixed.json
提示:无论原文件最后一行是否有换行符,最终生成的JSON格式都是合法的——若原文件无换行,
]会直接跟在最后一个对象后形成}];若有换行,]会单独占一行,均符合JSON规范。
方案二:用sed流式修改(更灵活)
sed是专门的流式文本处理工具,可直接对原文件的首尾行做修改,输出到新文件:
# 给第一行开头加[,给最后一行结尾加],输出到修复文件 sed -e '1s/^/[/' -e '$s/$/]/' your-broken-file.json > fixed.json
1s/^/[/:定位到第1行,在行首插入[$s/$/]/:定位到最后一行,在行尾插入]
关键注意事项
- 确保目标磁盘有至少20GB的剩余空间(需存储修复后的文件)
- 绝对不要用普通文本编辑器(如VS Code、Notepad++)打开或修改该文件,这类工具会尝试将整个文件加载到内存,直接触发内存溢出
- 验证修复结果时,仅需用
head -20 fixed.json和tail -20 fixed.json查看首尾内容,无需打开整个文件
内容的提问来源于stack exchange,提问作者MehulB
相关产品推荐
相关产品推荐

