递归格式化多个 json 文件
Formatting multiple json files recursively
这是一个关于在 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 工具在流式基础上工作——它们不会一次将文件的所有内容存储在内存中。因此,您必须使用中间位置,因为您将覆盖当前正在读取的文件。
您可能认为您的代码段不是容错的。如果你犯了一个错误,你就会覆盖你所有的数据。您应该将输出存储在新位置,验证,然后移动到覆盖。 :)
使用 Eclipse IDE 我们可以实现多个 JSON 文件的格式化
将文件导入 eclipse 和 select 文件(您希望格式化)或文件夹(对于所有文件)并右键单击 -> 源 -> 格式
我正在寻找类似的东西,只是注意到我可以 select 我的 VSCode 文件面板中的所有 JSON 文件和 CTRL + 单击 >“格式”。对于一次性操作来说就像魔法一样,它就地格式化文件。
VSCode format in action
这是一个关于在 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 工具在流式基础上工作——它们不会一次将文件的所有内容存储在内存中。因此,您必须使用中间位置,因为您将覆盖当前正在读取的文件。
您可能认为您的代码段不是容错的。如果你犯了一个错误,你就会覆盖你所有的数据。您应该将输出存储在新位置,验证,然后移动到覆盖。 :)
使用 Eclipse IDE 我们可以实现多个 JSON 文件的格式化
将文件导入 eclipse 和 select 文件(您希望格式化)或文件夹(对于所有文件)并右键单击 -> 源 -> 格式
我正在寻找类似的东西,只是注意到我可以 select 我的 VSCode 文件面板中的所有 JSON 文件和 CTRL + 单击 >“格式”。对于一次性操作来说就像魔法一样,它就地格式化文件。
VSCode format in action