我正在尝试使用jq程序在shell脚本中编辑json文件。 json文件具有以下格式:
{
"bla": {
"test1": "True",
"test2": "False"
}
}´
我想设置一个参数来定义应该更改“bla”中的哪个值。我想以这样的方式启动脚本:
$ ./myscript.sh test1
我试过这样:
#!/bin/sh
jq --arg v $1 '.pokemon.$v = "True"' filters.json > tmp.$$.json && mv tmp.$$.json filters.json
但它不起作用。我收到以下错误:
error: syntax error, unexpected '$', expecting IDENT
.pokemon.$v = "True"
^
1 compile error
有人知道如何解决这个问题吗?
答案 0 :(得分:2)
如果要在下标中使用变量,则需要使用[...]
下标语法而不是.
语法:
.pokemon[$v] = "True"