簡體   English   中英

bashscript 將多個 json 文件合並為一個 json

[英]bashscript combine multiple json files into one json

我有一個文件夾,其中包含 json 文件的子文件夾。

我需要編寫一個 bash 腳本,將所有 json 文件組合成一個大的有效 json。

1)首先嘗試使用jq先合並,所有json文件到每個目錄,稍后我需要再次將所有文件合並到一個大文件中。 我沒能成功。 我使用了這個命令:

jq -rs 'reduce .[] as $item ({}; . * $item)'

2) 其他選項是在開頭創建一個 json 文件,以“[” --> 處理所有目錄中的所有文件,並為每個文件 append 的內容 --> append “]”。

我可以僅使用 jq 以第一種方式獲得相同的結果嗎?

一個非常簡單的方法是:

jq -s 'flatten' $target/*/*.json > $merged_json

另一種選擇(如果您需要使用| ):

cat $target/*/*.json | jq -s 'flatten' > $merged_json

或者如果文件太多

find $target/* -name \*json cat {} |  jq -s 'flatten' > $merged_json

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM