我正试图用这一行改变多个json值
jq '.two="newval", .three="newval"' my.json
Run Code Online (Sandbox Code Playgroud)
这是输入
{
"one": {
"val": 1
},
"two": "val",
"three": "val",
"four": "val"
}
Run Code Online (Sandbox Code Playgroud)
但输出是2 jsons:
{
"one": {
"val": 1
},
"two": "newval",
"three": "val",
"four": "val"
}
{
"one": {
"val": 1
},
"two": "val",
"three": "newval",
"four": "val"
}
Run Code Online (Sandbox Code Playgroud)
如何在一个项目中更改多个值和输出?
pea*_*eak 17
只需将逗号更改为竖线字符就可以了:
.two="newval" | .three="newval"
Run Code Online (Sandbox Code Playgroud)
","用于连接流:A,B
将发出A然后发出B.
这是一种使用+对象添加来更新多个成员的方法。
. + {two:"newtwo", three:"newthree"}
Run Code Online (Sandbox Code Playgroud)
样本运行(假设中的数据data.json
)
$ jq -M '. + {two:"newtwo", three:"newthree"}' data.json
{
"one": {
"val": 1
},
"two": "newtwo",
"three": "newthree",
"four": "val"
}
Run Code Online (Sandbox Code Playgroud)