Bash 从Jira创建的bitbucket分支提取版本号

Bash 从Jira创建的bitbucket分支提取版本号,bash,sed,Bash,Sed,我正在使用Jira为发布创建一个bitbucket分支。作为构建过程的一部分,我需要从分支名称中提取版本号 构建的早期部分将整个分支名称转储到文本文件中。我遇到的问题是删除版本号之前的所有文本 分支名称示例如下: release/some-jira-ticket-343-X.X.X 其中X.X.X是版本号,例如1.11.1(每个X可以是任意长度整数) 我的第一个想法是直接用sed选择最后3个字符,但是由于X可以是任意长度,这是行不通的 另一篇帖子()建议使用sed alpha类。但是,这将不起

我正在使用Jira为发布创建一个bitbucket分支。作为构建过程的一部分,我需要从分支名称中提取版本号

构建的早期部分将整个分支名称转储到文本文件中。我遇到的问题是删除版本号之前的所有文本

分支名称示例如下:

release/some-jira-ticket-343-X.X.X
其中X.X.X是版本号,例如1.11.1(每个X可以是任意长度整数)

我的第一个想法是直接用sed选择最后3个字符,但是由于X可以是任意长度,这是行不通的

另一篇帖子()建议使用sed alpha类。但是,这将不起作用,因为jira票证ID将包含数字


有什么想法吗?

您可以删除直到最后一个
-
为止的所有字符:

$ sed 's/.*-//' <<< "release/some-jira-ticket-343-1.11.2"
1.11.2

您可以删除直到最后一个
-
为止的所有字符:

$ sed 's/.*-//' <<< "release/some-jira-ticket-343-1.11.2"
1.11.2
Awk解决方案:

awk -F [-.] '{ print $5"."$6"."$7 }' <<< "release/some-jira-ticket-343-12.4.7"

12.4.7
awk-F[-.]'{print$5.'$6.'$7}'awk解决方案:

awk -F [-.] '{ print $5"."$6"."$7 }' <<< "release/some-jira-ticket-343-12.4.7"

12.4.7

awk-F[-.]{print$5.”“$6.”“$7}”
awk
solution

$ awk -F- '{print $NF}' <<< "release/some-jira-ticket-343-1.11.1"
grep -oP '[0-9]-\K.*' <<< "release/some-jira-ticket-343-1.11.1"

awk
解决方案

$ awk -F- '{print $NF}' <<< "release/some-jira-ticket-343-1.11.1"
grep -oP '[0-9]-\K.*' <<< "release/some-jira-ticket-343-1.11.1"
使用字符串运算符:

var="release/some-jira-ticket-343-2.155.7"
echo ${var##*-}
打印:

2.155.7
使用字符串运算符:

var="release/some-jira-ticket-343-2.155.7"
echo ${var##*-}
打印:

2.155.7