SED 查找文件名中的元素并将其替换为增量值

SED 查找文件名中的元素并将其替换为增量值

示例文件名是Sample-0.0.1-SNAPSHOT.jar(jenkins 中 Maven 构建的结果)。

我的目标是运行一个在失败时执行的 shell 脚本,该脚本的作用是将增量数字添加到文件名中。

所以我们可以说Sample-0.0.1-1-SNAPSHOT.jarSample-0.0.1-2-SNAPSHOT.jar..等等。

(顺便说一句:为了生成文件名,Jenkins 使用以下环境变量格式从 POM 文件中获取相关信息:$POM_ARTIFACTID-$POM-VERSION.jar)

我在想以某种方式使用 $POM-VERSION 来回显它并使用 sed 来添加/替换增量数字?

问题是我不知道如何执行它,所以如果有人可以帮助我解决这个问题,那就太好了!另外,如果有更好的想法,我绝对愿意接受。

答案1

假设工作空间是持久的,那么每次构建后都会触发以下事件:

if [ -f counterfile.txt ]; then
  num=$(cat counterfile.txt)
else
  num=0
fi
num=$((num+1))
echo $num>counterfile.txt

filename=$POM_ARTIFACTID-$POM-VERSION.jar
newfilename=echo $filename | sed "s/-SNAPSHOT/-$num-SNAPSHOT/"
mv $filename $newfilename

相关内容