[英]How to increment and find/replace number using sed or perl
我有一个名为“a_tag-30”的 git 标签,我想找到最后一个标签并使用 sed 或 perl 表达式将其加 1,因此结果将是“a_tag-3” 有人可以帮我吗?
在 git 命令之后,通过“-taggerdate”键按降序排列匹配模式“a_tag-*”的所有标签。
git tag --list 'a_tag-*' --sort=-taggerdate | head -1 | awk -F- '{print "a_tag-" $NF+1}'
然后将第一行馈送到 awk 命令,其中“-”用作字段分隔符。 因此 $NF 位置参数(即 NF 表示字段数,它是 awk 中的预定义变量)保存最后一个字段的值。
最后通过将 $NF 加 1 来打印新的标签值。
使用 bash 中的实用程序组合,这种事情是最简单的。 例如:
echo "a_tag-$(($(git tag --list 'a_tag-*'
| sed -e 's/^.*-\([0-9]*\)/\1/'
| sort -nr
| head -1) + 1))" > output
这会将新标签写入output
。
除了具有前缀“a_tag”外,它还假定您的所有标签都以破折号结尾,后跟一个数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.