我在代码中使用下面带有grep的jq语句来打印值。
jq '.Subnets[0].Tags' subnet.txt | grep -q "${add}usea1 internal us-east"
这对于某些值来说很好用,但是很少有值需要grep才能成为“ $ {add} use * internal us-east”,我可以使用星号以便可以打印所有值。
当我包含星号时出现错误。有什么建议吗?
答案 0 :(得分:1)
您尚未遵循mcve准则,但正如@shellter指出的那样,问题描述表明您只需要使用适当的(grep)正则表达式即可:
grep -q "${add}use.* internal us-east"
但是,由于无论如何都使用jq,最好通过扩展jq过滤器来执行过滤,例如,如下所示:
jq --arg add "$add" '
.Subnets[0].Tags
| select(test("\($add)use.* internal us-east"))
' subnet.txt