我正在尝试使用命令“jq -s . file1 file2”合并两个 json 文件。但我希望这些文件的内容以逗号分隔,也不应该以 [] 开头。
文件1:
{
"node1": {
"Environment": "PRD",
"OS": "linux"
},
"node2": {
"Environment": "NPR",
"OS": "linux"
}
}
文件2:
{
"node3": {
"Environment": "PRD",
"OS": "linux"
},
"node4": {
"Environment": "NPR",
"OS": "linux"
}
}
使用 jq -s 输出。文件1 文件2
[
{
"node1": {
"Environment": "PRD",
"OS": "linux"
},
"node2": {
"Environment": "NPR",
"OS": "linux"
}
},
{
"node3": {
"Environment": "PRD",
"OS": "linux"
},
"node4": {
"Environment": "NPR",
"OS": "linux"
}
}
]
所需输出:
{
"node1": {
"Environment": "PRD",
"OS": "linux"
},
"node2": {
"Environment": "NPR",
"OS": "linux"
},
"node3": {
"Environment": "PRD",
"OS": "linux"
},
"node4": {
"Environment": "NPR",
"OS": "linux"
}
}
任何人都可以帮助找到解决方案。谢谢
答案1
$ jq -s 'add' file[12].json
{
"node1": {
"Environment": "PRD",
"OS": "linux"
},
"node2": {
"Environment": "NPR",
"OS": "linux"
},
"node3": {
"Environment": "PRD",
"OS": "linux"
},
"node4": {
"Environment": "NPR",
"OS": "linux"
}
}
使用add
将连接从文件中获取的列表中的顶级键,创建这些键的合并对象。