Bash 递归格式化多个json文件

Bash 递归格式化多个json文件,bash,formatting,side-effects,Bash,Formatting,Side Effects,这是一个关于最小化bash脚本中的副作用的理论问题 我最近使用了一种简单的机制来格式化嵌套目录结构中的一组json文件 for f in `find ./ -name *json`; do echo $f ; python -mjson.tool $f > /tmp/1 && cp /tmp/1 $f ; done. 其机制就是 使用python的mjson.tool格式化每个文件 将其写入tmp位置,然后 然后将其重写回原位 有没有一种方法更优雅,即副作用最小

这是一个关于最小化bash脚本中的副作用的理论问题

我最近使用了一种简单的机制来格式化嵌套目录结构中的一组json文件

for f in `find ./ -name *json`; do echo $f ; python -mjson.tool $f > /tmp/1 && cp /tmp/1 $f ; done.   
其机制就是

  • 使用python的mjson.tool格式化每个文件
  • 将其写入tmp位置,然后
  • 然后将其重写回原位

有没有一种方法更优雅,即副作用最小?我假设bash专家有更好的方法来做这类事情。

Unix工具以流式方式工作——它们不会一次将文件的所有内容存储在内存中。因此,您必须使用中间位置,因为您将覆盖当前正在读取的文件


<>你可以认为你的代码片段不是容错的。如果你犯了一个错误,你会覆盖你所有的数据。您应该将输出存储在新位置,进行验证,然后移动到“覆盖”。)

使用EclipseIDE,我们可以实现多个JSON文件的格式化


将文件导入eclipse并选择文件(您希望格式化)或文件夹(所有文件),然后右键单击->源->格式化

我正在寻找类似的内容,刚刚注意到我可以在我的VSCode文件面板中选择所有JSON文件,然后按住CTRL键并单击>“格式化”。对一次性操作来说就像魔术一样,它将文件格式化到位


我注意到有人投了反对票。有什么特别的原因吗?无副作用的bash脚本似乎是一个有价值的讨论项目。