San*_*jay -2 linux text-processing filenames
我想从我的构建 zip 文件的名称中提取版本号。
构建名称: build102p12.zip
我想从中提取102p12。
我正在使用 linux 环境:rhel 6。
您想从字符串中删除子字符串build和。.zipbuild102p12.zip
假设您在 shell 变量中有原始字符串name:
name='build102p12.zip'
name="${name#build}" # remove prefix "build"
name="${name%.zip}" # remove suffix ".zip"
Run Code Online (Sandbox Code Playgroud)
$name现在将是字符串102p12。
有关${parameter#word}和${parameter%word}变量替换的更多信息,请参阅您的 shell 手册。
如果你有这条线(没有别的)
build name : build102p12.zip
Run Code Online (Sandbox Code Playgroud)
在文件中buildinfo:
$ buildversion="$( grep -oE '[0-9]+p[0-9]+' buildinfo )"
Run Code Online (Sandbox Code Playgroud)
扩展的正则表达式[0-9]+p[0-9]+将匹配任何看起来像NNNpNNN其中每个NNN都是一些数字序列的东西。这假设这仅在文件中发生一次buildinfo。