我从curl命令中获得了以下输入json,并将其输入到jq。
{
"version": "14.10.0-ee",
"revision": "ad109bc62af"
}
我尝试使用jq来提取'14.10.0'。
我有下面的jq命令,但它只是返回“14.10.0-ee”
jq '. | select(.version|capture("^[0-9]{1,}.[0-9]{1,}.[0-9]{1,}")).version'
我看了这里的jq文档,但我无法找到正确的语法。我试过扫描、捕获和匹配,但没有成功。
如果我将结果传递给grep,我就可以实现我想要的,但我更喜欢在一个命令中完成所有这些。
任何帮助将不胜感激。
3条答案
按热度按时间uqjltbpv1#
但您可以通过**
[[:digit:].]+
模式使用capture**Demo
au9on6nz2#
你可以在连字符上进行分割,然后取第一个元素:
或
(
/
在字符串上相当于调用split)使用 raw output 的标志
-r
调用jq,即字符串之间没有引号。dpiehjr43#
或
不要把它复杂化;)
使用 raw output 的标志
-r
调用jq,即字符串之间没有引号。