我有一个文件夹树,其中存储了从数据集转换而来的各种.json文件。
/(top folder)
|-- folder1/
| |- file1.json {"a":1,"b":[1,2]}
| |- file2.json {"a":12,"c":[]}
|-- folder2/
|- file1.json {"ta":1,"tb":[1,2]}
|- file2.json {"ta":12,"tc":1}
|- folder21/
|- file3.json {"test":true}
字符串
我希望将此文件夹合并为
{
"folder1": {
"file1.json": {"a":1,"b":[1,2]},
"file2.json": {"a":12,"c":[]}
},
"folder2": {
"file1.json": {"ta":1,"tb":[1,2]},
"file2.json": {"ta":12,"tc":1},
"folder21" : {
"file3.json": {"test":true}
}
}
}
型
我知道这可以用python/perl通过编写显式循环来实现:1)解析json文件,2)使用文件/文件夹名称作为键将解析的数据与本机数据结构/对象合并,3)将合并的数据结构保存到单个JSON文件中。我有implemented one for Octave/MATLAB,它可以工作,但有点慢。
我想知道是否有可能使用jq有效地做到这一点。
我看到可以使用reduce
表达式合并同一文件夹中的json文件,请参阅https://stackoverflow.com/a/59769797/4271392
我想知道jq是否允许扫描和重命名子文件夹,并通过每个文件夹合并。
如果这是可能的,我将不胜感激,如果有人可以给我指出相关的例子或文档。
1条答案
按热度按时间ecbunoof1#
当你在评论区提到
bash
时,你可以尝试调用jq:字符串
我的测试输出:
型