从Jira中提取版本号创建了bitbucket分支

时间:2017-08-22 10:13:52

标签: bash sed

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

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

示例分支名称为:

release/some-jira-ticket-343-X.X.X

其中X.X.X是版本号,例如1.11.1(每个X可以是任何长度的整数)。

我的第一个想法是用sed选择最后3个字符,但是因为X可以是任何长度,这将无效。

另一篇文章(Removing non-alphanumeric characters with sed)建议使用sed alpha类。但是这不起作用,因为jira票证ID将包含数字。

有什么想法吗?

4 个答案:

答案 0 :(得分:2)

您可以删除最后-的所有字符:

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

grep,只输出行尾的数字和点:

grep -o '[0-9.]*$'

答案 1 :(得分:2)

awk解决方案,

$ awk -F- '{print $NF}' <<< "release/some-jira-ticket-343-1.11.1"

grep解决方案,

grep -oP '[0-9]-\K.*' <<< "release/some-jira-ticket-343-1.11.1"

答案 2 :(得分:1)

Awk解决方案:

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

12.4.7

将字段分隔符设置为 - 和。然后提取我们需要的数据。

答案 3 :(得分:1)

使用字符串运算符:

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

打印:

2.155.7