我有一个名为“a_tag-30”的 git 标记,我想找到最后一个标记并使用 sed 或 perl 表达式将其增加 1,因此结果将是“a_tag-31”。有人可以帮我吗?
2 回答
1
以下 git 命令获取所有匹配模式“a_tag-*”的标签,通过“-taggerdate”键按降序排序。
git tag --list 'a_tag-*' --sort=-taggerdate | head -1 | awk -F- '{print "a_tag-" $NF+1}'
然后将第一行馈送到 awk 命令,其中“-”用作字段分隔符。因此 $NF 位置参数(即 NF 表示字段数,它是 awk 中的预定义变量)保存最后一个字段的值。
最后通过将 $NF 加 1 来打印新的标签值。
于 2019-10-14T08:06:07.307 回答
0
使用 bash 中的实用程序组合,这种事情是最简单的。例如:
echo "a_tag-$(($(git tag --list 'a_tag-*'
| sed -e 's/^.*-\([0-9]*\)/\1/'
| sort -nr
| head -1) + 1))" > output
这会将新标签写入output.
除了具有前缀“a_tag”外,它还假定您的所有标签都以破折号结尾,后跟一个数字。
于 2019-10-14T07:24:20.420 回答