使用jq提取数组中的部分字符串元素



我正在尝试提取数组元素中的部分字符串,并使用这些提取创建一个新数组。

[
"local/binaries/app-2.21.0.tar.gz",
"local/binaries/app-2.20.0.tar.gz",
"local/binaries/app-2.19.1.tar.gz",
"local/binaries/app-2.19.0.tar.gz",
"local/binaries/app-2.18.0.tar.gz"
]

所需输出

[
"app-2.21.0",
"app-2.20.0",
"app-2.19.1",
"app-2.19.0",
"app-2.18.0"
]

您可以将jq的capture函数与正则表达式一起使用。

jq '[.[] | capture("(?<captured>app-[0-9]+\.[0-9]+\.[0-9]+)") | .[]]'

在jq操场上试试。

文件:https://stedolan.github.io/jq/manual/#RegularexpressionsPCRE

最新更新