如何在Linux中移除字符串末尾固定匹配内容(Jenkins $JOB_NAME示例)
移除字符串末尾固定匹配内容的方法
针对从Jenkins的$JOB_NAME变量中移除末尾固定的pull-request后缀,这里提供几种Linux shell环境下可行的实用方法:
方法1:Bash参数扩展(推荐,无需额外工具)
Bash原生支持字符串处理,通过参数扩展可直接去掉变量末尾的指定后缀:
# 示例赋值,实际场景直接使用$JOB_NAME即可 JOB_NAME="terraform-jenkins-pull-request" CLEANED_NAME="${JOB_NAME%-pull-request}" echo $CLEANED_NAME
语法${VAR%-suffix}会精准匹配变量末尾的suffix并移除,只会处理最后出现的一次匹配内容,完全契合需求。
方法2:Sed命令
利用sed的正则匹配替换行尾的目标字符串:
echo "$JOB_NAME" | sed 's/-pull-request$//'
正则中的$用于锚定行尾,确保仅替换末尾的-pull-request。
方法3:Awk命令
通过awk的sub函数替换行尾的指定内容:
echo "$JOB_NAME" | awk '{sub(/-pull-request$/, ""); print}'
同样借助$锚定行尾,实现精准替换。
测试验证
输入:terraform-jenkins-test-pull-request
上述三种方法的输出均为:terraform-jenkins-test
内容的提问来源于stack exchange,提问作者hari989
相关产品推荐
相关产品推荐

