Jq

如何將來自多個 json 文件的數組與 JQ 合併?

  • May 5, 2022

我有多個具有相同結構的 JSON 文件,列表是數組。

$ jq 'keys' file_1.json
[
 "itemsPerPage",
 "links",
 "list",
 "startIndex"
]

列表欄位看起來像這樣

文件1.json

"list" : [ {"id: 123, "fname":"SAM" }, {"id: 125, "fname":"JOE" } .....]

文件X.json

"list" : [ {"id: 783, "fname":"Danny" }, {"id: 785, "fname":"Kingmo" } .....]

嘗試按如下方式生成輸出(僅列出並忽略 itemsPerPage/links/startIndex 的其他欄位)

"list" : [ {"id: 123, "fname":"SAM" }, {"id: 125, "fname":"JOE" },  {"id: 783, "fname":"Danny" }, {"id: 785, "fname":"Kingmo" }]

使用 jq 讀取所有這些文件並生成一個包含所有 JSON 文件中所有對象的列表數組的單個文件的最佳方法是什麼?

您可以使用inputs函式將所有 JSON 文件的內容一起獲取並僅將.list欄位附加在一起

jq -n '{ list: [ inputs.list ] | add }' file1.json file2.json

引用自:https://unix.stackexchange.com/questions/610461