pun*_*pun 3 bash shell json jq
我正在使用jq处理大型json文件.它看起来像这样:
FILE1.json
{
"person": [
{
"name": "sam",
"age": "40",
"weight": "180",
"height": "6"
},
{
"name": "peter",
"age": "41",
"weight": "180",
"height": "6.1"
},
{
"name": "mike",
"age": "40",
"weight": "200",
"height": "5.9"
},
{
"name": "ethan",
"age": "41",
"weight": "190",
"height": "6"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想使用jq工具将权重值从200更改为195,其中name为"mike".
我怎样才能做到这一点?
我们的想法是更新person数组,其中具有该名称的对象"mike"将被修改为具有该名称的对象weight "195".否则它就被跳过了.
.person |= map(
if .name == "mike"
then .weight = "195"
else .
end)
Run Code Online (Sandbox Code Playgroud)
或者更简洁地,搜索更新和更新它们的人员:
(.person[] | select(.name == "mike")).weight = "195"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2476 次 |
| 最近记录: |