大多數谷歌搜索都用檔案顯示它,但我想用變數來做。用檔案嘗試了一些東西,但我找不到正確的過濾器或功能,或者不確定我的方法是否有意義。
var1='[
{"a":"1","b":"2","c":"3"},
{"a":"4","b":"5","c":"6"},
{"a":"7","b":"8","c":"9"}
]'
var2='[
{"d":"x","e":"y"},
{"d":"z","e":"q"},
{"d":"w","e":"v"}
]'
我想要的結果是
'[
{"a":"1","b":"2","c":"3","d":"x","e":"y"},
{"a":"4","b":"5","c":"6","d":"z","e":"q"},
{"a":"7","b":"8","c":"9","d":"w","e":"v"}
]'
如果我使用
jq -n --argjson var1 "$var1" --argjson var2 "$var2" '$var1 $var2'
它只是用所有 6 個物件創建一個更大的陣列,而不是 3 個更長的物件
如果我使用*或|=它給出錯誤
我什至不確定它是我需要的過濾器還是內置函式(地圖似乎沒有這樣做)
uj5u.com熱心網友回復:
用于transpose對齊兩個輸入陣列中的元素,然后add合并兩邊:
jq -n --argjson var1 "$var1" --argjson var2 "$var2" '
[$var1, $var2] | [transpose[] | add]
'
[
{
"a": "1",
"b": "2",
"c": "3",
"d": "x",
"e": "y"
},
{
"a": "4",
"b": "5",
"c": "6",
"d": "z",
"e": "q"
},
{
"a": "7",
"b": "8",
"c": "9",
"d": "w",
"e": "v"
}
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/474242.html
