我有一个需要在特定条件下更新的 json 文件。
示例 json
{
"Actions" : [
{
"value" : "1",
"properties" : {
"name" : "abc",
"age" : "2",
"other ": "test1"
}
},
{
"value" : "2",
"properties" : {
"name" : "def",
"age" : "3",
"other" : "test2"
}
}
]
}
我正在编写一个脚本,它利用 Jq 来匹配一个值并更新,如下所示
cat sample.json | jq '.Actions[] | select (.properties.age == "3") .properties.other = "no-test"'
输出(打印到终端)
{
"value": "1",
"properties": {
"name": "abc",
"age": "2",
"other ": "test1"
}
}
{
"value": "2",
"properties": {
"name": "def",
"age": "3",
"other": "no-test"
}
}
虽然此命令进行了所需的更改,但它会在终端上输出整个 json,并且不会对文件本身进行更改。
请告知是否可以选择让 jq 直接对文件进行更改(类似于 sed -i)。