如何通过CLI格式化目录下的多个JSON文件?
批量格式化JSON文件的CLI方案
单文件格式化(直接覆盖原文件)
不用管道输出,直接用jq的--in-place(简写-i)参数就能修改原文件:
jq -i . file.json
这个命令会读取file.json,格式化后直接覆盖原文件,比管道方式更安全高效。
批量处理当前文件夹下所有JSON文件
用find命令配合jq批量操作:
find . -type f -name "*.json" -exec jq -i . {} \;
参数说明:
.从当前目录开始搜索-type f仅匹配文件(排除文件夹)-name "*.json"筛选所有JSON后缀的文件-exec对每个找到的文件执行jq命令,{}会被替换为目标文件名
可选:仅处理当前目录(不包含子文件夹)
如果不想递归处理子文件夹,加上-maxdepth 1参数:
find . -maxdepth 1 -type f -name "*.json" -exec jq -i . {} \;
替代方案:无jq环境时用Python脚本
如果你的环境没安装jq,可以用Python自带的json模块写脚本批量处理:
import json import os for filename in os.listdir('.'): if filename.endswith('.json'): with open(filename, 'r+', encoding='utf-8') as f: try: data = json.load(f) f.seek(0) json.dump(data, f, indent=4, ensure_ascii=False) f.truncate() except json.JSONDecodeError: print(f"跳过无效JSON文件:{filename}")
将脚本保存为format_json.py,在目标文件夹执行python format_json.py即可,它会自动跳过解析失败的无效JSON文件。
内容的提问来源于stack exchange,提问作者Samselvaprabu
相关产品推荐
相关产品推荐

