我在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”
答案 0 :(得分:1)
使用-
尝试对项目进行算术减法。我建议使用String interpolation。它会自动将输入转换为字符串:
jq -r --arg var1 $var1 --arg var2 $var2 '(.[].appId="\($var1)-\($var2)")' service.json