我有一個這樣的輸入行:1374240, 1374241. 我需要制作json檔案:
{
"version": "1.0",
"tests": [
{
"id": 1374240,
"selector": ""
},
{
"id": 1374241,
"selector": ""
}
]
}
我制作了關聯陣列:
idRow='1374240, 1374241'
IFS=',' read -r -a array <<<"$idRow"
trimmedArray=()
for id in "${array[@]}"; do
trimmedId="$(echo -e "${id}" | xargs)"
testRow="{\"id\":${trimmedId},\"selector\":\"\"}"
trimmedArray =("$testRow")
done
echo "${trimmedArray[*]}"
輸出:
{"id":1374240,"selector":""} {"id":1374241,"selector":""}
我如何將它插入最終的 json 結構并寫入檔案?我用 jq 嘗試了不同的變體,但我無法得到最終的結構。請幫忙。
uj5u.com熱心網友回復:
使用 將數字作為原始文本讀入-R,在 處拆分,,使用tonumbers將它們轉換為數字,并動態創建結構:
echo "1374240, 1374241" | jq -R '
{version:"1.0",tests:(
split(",") | map(
{id: tonumber, selector: ""}
)
)}
'
演示
如果您可以一開始就省略逗號,那么數字會更容易閱讀,因為它們本身就是 JSON:
echo "1374240 1374241" | jq -s '
{version:"1.0",tests: map(
{id: tonumber, selector: ""}
)}
'
演示
輸出:
{
"version": "1.0",
"tests": [
{
"id": 1374240,
"selector": ""
},
{
"id": 1374241,
"selector": ""
}
]
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/520122.html
標籤:数组json重击jq
下一篇:在shell腳本中找到匹配退出后
