【发布时间】:2021-09-10 20:28:07
【问题描述】:
我在 shell 脚本中使用 jq 来操作 JSON 文件。
我有 2 个文件,我想将它们合并到一个文件中,同时在名称/值对中的名称相同时聚合(求和)这些值。
举个例子:
Input1.json
[
{
"A": "Name 1",
"B": "1.1",
"C": "2"
},
{
"A": "Name 2",
"B": "3.2",
"C": "4"
}
]
Input2.json
[
{
"A": "Name 2",
"B": "5",
"C": "6"
},
{
"A": "Name 3",
"B": "7",
"C": "8"
}
]
预期结果:
输出.json
[
{
"A": "Name 1",
"B": "1.1",
"C": "2"
},
{
"A": "Name 2",
"B": "8.2",
"C": "10"
},
{
"A": "Name 3",
"B": "7",
"C": "8"
}
]
我可以使用jq 以外的其他工具,但我更愿意最终将解决方案包含在我可以从终端调用的 shell 脚本中。
感谢任何帮助。谢谢。
【问题讨论】:
-
您是否需要它与任意键一起使用,或者总是可以假设
A是用于聚合的键,B和C是要添加的整数,没有别的东西存在? -
@CharlesDuffy 您可以假设 A 是使用的关键。 B 和 C 是应该相加的十进制数(我更新了示例以包含一些十进制数)。
标签: json shell command-line merge jq