json檔案:
{
"A": "jack",
"B": [
{
"name": "jack/jil",
"version": "0.1"
},
{
"name": "went/well",
"version": "1.2"
}
]
}
現在我需要更新每個物件的版本:“$version-dev”,名稱從哪里開始,jack同時保持 json 的其余部分完好無損。
我能得到的最接近的。
jq '.B[] | select(.name|test("jack.")) | .version = "-dev"' old.json > new.json
在上面的命令中,我只在 new.json 中獲取具有更新值的特定物件,但我也需要整個 json。有什么建議
uj5u.com熱心網友回復:
您需要在要更新的整個選擇周圍加上括號: (… | .version) = …
jq '(.B[] | select(.name|test("jack.")) | .version) = "-dev"' old.json > new.json
{
"A": "jack",
"B": [
{
"name": "jack/jil",
"version": "0.1-dev"
},
{
"name": "went/well",
"version": "1.2"
}
]
}
演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/417468.html
標籤:
上一篇:如何使用fzf僅搜索目錄?
