"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
파일에서 결합될 목록의 최상위 키를 사용하여 이러한 키의 병합된 개체를 만듭니다.