gpt4 book ai didi

linux - 在 shell 脚本中转义 jq 表达式中的符号

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:35:59 27 4
gpt4 key购买 nike

我的 shell 中导出了两个变量 var1var2

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 

关于linux - 在 shell 脚本中转义 jq 表达式中的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49048412/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com