编辑项目并使用 jq 打印全部内容
Edit an item and print the whole content with jq
假设我有一个 JSON 这样的:
{
"user" :
{
"name": "Manu",
"songs": 30
},
"admin" :
{
"name": "Chao",
"songs": 50
}
}
我想将 user -> songs
替换为 40 并打印整个文件,这样我得到:
{
"user" :
{
"name": "Manu",
"songs": 40 <------ this is the line to change
},
"admin" :
{
"name": "Chao",
"songs": 50
}
}
如何使用 jq
(使用 jq version 1.3
)执行此操作?我尝试了以下方法,它成功地替换了值,但是没有打印出全部内容:
$ jq "[.user | { "name": .name, "songs": 40 }]" myfile
[
{
"songs": 40,
"name": "Manu"
}
]
使用赋值运算符:
jq '.user.songs = 40' myfile
假设我有一个 JSON 这样的:
{
"user" :
{
"name": "Manu",
"songs": 30
},
"admin" :
{
"name": "Chao",
"songs": 50
}
}
我想将 user -> songs
替换为 40 并打印整个文件,这样我得到:
{
"user" :
{
"name": "Manu",
"songs": 40 <------ this is the line to change
},
"admin" :
{
"name": "Chao",
"songs": 50
}
}
如何使用 jq
(使用 jq version 1.3
)执行此操作?我尝试了以下方法,它成功地替换了值,但是没有打印出全部内容:
$ jq "[.user | { "name": .name, "songs": 40 }]" myfile
[
{
"songs": 40,
"name": "Manu"
}
]
使用赋值运算符:
jq '.user.songs = 40' myfile