【发布时间】:2021-06-29 17:46:03
【问题描述】:
我进行了大量搜索,发现的大多数回复都很接近,但不是我想要的。用这个解析一个 JSON 文件:
cat file.json | jq -r ".[] | select(.name == \"${VALUE}\" or .guid == \"${VALUE}\") | .name"
按预期工作,它选择 .name 或 .guid 等于 ${VALUE} 的项目并打印出名称。
但是,我希望 .guid 匹配是子字符串或正则表达式匹配。尝试这个不起作用:
cat file.json | jq -r ".[] | select(.name == \"${VALUE}\" or .guid | contains(\"${VALUE}\")) | .name"
我想我已经很接近了,只是错过了一些对 jq 来说是新的东西......
【问题讨论】:
-
在您的问题中包含minimal reproducible example。