![](/img/trans.png)
[英]Update one value (matching a known key) in a list of JSON objects using jq
[英]jq to update key:value objects with matching strings at the begining
我需要更新以下 json 文件值,其中密鑰與 substring 匹配。 樣品.json
{
"A": "a"
"re": {
"jok/pok": ^20.0,
"sok/dok": ^23.0,
"jok/ssd": ^32.0
}
}
現在我需要 append -dev
到那些 key 以jok
開頭的鍵/值。
{
"A": "a"
"re": {
"jok/pok": ^20.0-dev,
"sok/dok": ^23.0,
"jok/ssd": ^32.0-dev
}
}
我知道我缺少一些非常簡單的解決方案。
假設您的輸入實際上是格式正確且有效的 JSON:
{
"A": "a",
"re": {
"jok/pok": "^20.0",
"sok/dok": "^23.0",
"jok/ssd": "^32.0"
}
}
以下jq程序根據需要生成output:
.re |= with_entries(select(.key|startswith("jok")).value |= . + "-dev")
Output:
{
"A": "a",
"re": {
"jok/pok": "^20.0-dev",
"sok/dok": "^23.0",
"jok/ssd": "^32.0-dev"
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.