我正在尝试合并一个目录中的所有 json 文件(可以有很多)。
我知道如果只有 2 个文件,我可以使用jq -s . file1.json file2.json
. 但是当我尝试使用像这样的通配符时jq -s . file*.json
,它失败了。任何想法?
在等待 jq 的解决方案时,让我解决这个问题“......或任何工具?”
不同的人通过“合并”意味着不同的事情,因此假设这里是一个简单的递归 JSON 合并,那么使用jtc
(另一个工具)解决方案将是这样的(对于任意数量的文件):
jtc -J / -w[0] -mi[1:] / -w[0] *.json
Run Code Online (Sandbox Code Playgroud)
为了说明该解决方案,以下是它如何处理几个任意 JSON 文件:
bash $ jtc -tc file1.json
{
"days": {
"2020-05-18": { "seconds": 60 },
"2020-05-19": { "seconds": 30 },
"2020-05-20": { "seconds": 1400 }
},
"total": { "seconds": 1490 }
}
bash $ jtc -tc file2.json
{
"days": {
"2020-05-20": { "seconds": 95 },
"2020-05-21": { "seconds": 80 },
"2020-05-22": { "seconds": 120 }
},
"total": { "seconds": 295 }
}
bash $ jtc -J / -w[0] -mi[1:] / -w[0] -tc file*.json
{
"days": {
"2020-05-18": { "seconds": 60 },
"2020-05-19": { "seconds": 30 },
"2020-05-20": {
"seconds": [ 1400, 95 ]
},
"2020-05-21": { "seconds": 80 },
"2020-05-22": { "seconds": 120 }
},
"total": {
"seconds": [ 1490, 295 ]
}
}
bash $
Run Code Online (Sandbox Code Playgroud)
-tc
flag 仅用于在此处以紧凑格式显示 JSON
附言。碰巧我是jtc
工具 - unix JSON 处理实用程序的创建者。
归档时间: |
|
查看次数: |
5905 次 |
最近记录: |