如何json格式化和覆盖多个文件?

时间:2017-12-28 09:02:34

标签: python json bash shell command-line

我有几个未格式化的json文件我想要"美化"所以他们更具人性化。我通常为单个文件执行的方式是:

python -m json.tool < infile > outfile

但是对于几个文件,我还没有找到一种处理它们的方法,并用新的&#34;漂亮的&#34;覆盖同一个文件。 JSON。

我最接近的是:

find ./ -type f -exec python -m json.tool {} \;

但它会将所有内容打印到标准输出,这很好但不是最佳的,具体取决于您查看的文件数量。有没有办法让上面的命令覆盖带有美化json的文件?

调用文件:message1.json,message2.json等等......

提前致谢

1 个答案:

答案 0 :(得分:1)

尝试:

find . -type f -exec sh -c 'python -m json.tool $0 > $0.pretty' {} \;

请参阅https://stackoverflow.com/a/12965441/4886927了解详细说明

这样原始文件将被新文件覆盖:

find . -type f -exec sh -c 'python -m json.tool < $0 > /tmp/pretty.json && mv  /tmp/pretty.json $0' \;