繁体   English   中英

如何使用 sed 或 perl 增加和查找/替换数字

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM