我有一个 json,我想在其中修改一个特定的值,但终端总是显示带有修改后的值的 json,但它实际上并没有改变特定文件中的值。示例 json:
{
name: 'abcd',
age: 30,
address: 'abc'
}
我想更改文件本身的地址值,但到目前为止我一直无法这样做。我尝试使用:
jq '.address = "abcde"' test.json
但它没有用。有什么建议吗?
最佳答案
使用临时文件;这就是任何声称可以进行就地编辑的程序正在做的事情。
tmp=$(mktemp)
jq '.address = "abcde"' test.json > "$tmp" && mv "$tmp" test.json
如果地址不是硬编码的,则通过 jq
参数传递正确的地址:
address=abcde
jq --arg a "$address" '.address = $a' test.json > "$tmp" && mv "$tmp" test.json
关于json - 使用 jq 就地修改 json 中的键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42716734/