我在shell中导出了两个变量var1
和var2
。
var1=root
var2=webserver
我想要一个jq查询,它可以用JSON文件中的给定值替换JSON密钥。像这样的东西,
jq -r --arg var1 $var1 --arg var2 $var2 '(.[].appId=$var1-$var2)' service.json
它给出了错误,即无法减去var1和var2。但我希望变量被$var1-$var2
替换为字符串。
我试过"-"
,但它给出了编译错误。
service.json的内容如下。
[ {
"appId": "Eternal Flame",
"age": 1000000,
"secretIdentity": "Unknown",
"powers": [
"Immortality",
"Heat Immunity",
"Inferno",
"Teleportation",
"Interdimensional travel"
]
} ]
appId值应替换为“root-webserver”
使用-
尝试对项目进行算术减法。我建议使用String interpolation。它会自动将输入转换为字符串:
jq -r --arg var1 $var1 --arg var2 $var2 '(.[].appId="\($var1)-\($var2)")' service.json