【发布时间】:2021-12-17 09:46:37
【问题描述】:
我有一个 JSON 文件,我正在尝试使用脚本更改其中的特定值。
"foo-bar": "baz",
在本例中设置为 baz,但实际上我不知道这个值是什么。
我想在更大的脚本中更改 foo-bar 的值。
"foo-bar": "qux",
我试过了
$var='qux'
jq --arg passvar ${var} '{"foo-bar":$passvar}' file.json
我在终端得到正确的输出
{
"foo-bar": "qux"
}
但是当我使用 vim 检查实际文件内容时,我得到了
"foo-bar": "baz",
jq 不想保存新的 file.json?或者这是某种形式的预览?
我错过了什么?有没有比jq 更好的方法来更新/设置 json 文件中的值?
*为初始变量添加破折号,现在是 foo-bar 而不是 foo。
【问题讨论】:
-
您的尝试忽略
file.json并输出您的过滤器创建的对象。 -
jq只能从文件中读取并写入标准输出;它没有写入任何其他文件的设施。
标签: javascript json zsh