从文件名中提取版本

从文件名中提取版本

我想从构建 zip 文件的名称中提取版本号。

构建名称:build102p12.zip

我想102p12从中提取。

我使用的是linux环境:rhel 6。

答案1

您想要从字符串中删除子字符串build和。.zipbuild102p12.zip

假设 shell 变量中有原始字符串name

name='build102p12.zip'

name="${name#build}"  # remove prefix "build"
name="${name%.zip}"   # remove suffix ".zip"

$name现在将是字符串102p12.

${parameter#word}有关和变量替换的更多信息,请参阅 shell 手册${parameter%word}


如果你有这条线(没有别的)

build name : build102p12.zip

在文件中buildinfo

$ buildversion="$( grep -oE '[0-9]+p[0-9]+' buildinfo )"

扩展的正则表达式[0-9]+p[0-9]+将匹配任何看起来像NNNpNNN其中每个NNN数字序列的东西。这假设这只发生一次buildinfo文件中。

相关内容