You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用sed提取环境变量中分支名的首个数字序列

用sed提取分支名中的PROJ编号

没问题,我来帮你搞定这个需求!要从分支名feature/PROJ-12233-some-other-text-potential-12里精准提取出12233,用sed可以轻松实现,具体方案如下:

核心命令

假设存储分支名的环境变量名为BRANCH_NAME,执行这条命令就能直接得到目标数字:

echo "$BRANCH_NAME" | sed -E 's/.*PROJ-([0-9]+)-.*/\1/'

命令拆解

我给你拆解开每个部分的作用,方便你理解和按需调整:

  • -E:启用扩展正则表达式模式,这样不用对捕获括号()做转义,写起来更简洁直观
  • s/.*PROJ-([0-9]+)-.*/\1/:这是sed的核心替换规则,细分为:
    • .*PROJ-:贪婪匹配从字符串开头到PROJ-的所有内容,确保定位到目标数字的前缀
    • ([0-9]+):用括号标记一个捕获组,匹配并留存一个或多个连续数字(也就是我们要的12233)
    • -.*:匹配目标数字后面的-及所有后续内容
    • \1:将整个字符串替换为第一个捕获组的内容,也就是我们需要提取的数字

测试示例

如果要直接验证效果,可以运行这段代码:

BRANCH_NAME="feature/PROJ-12233-some-other-text-potential-12"
echo "$BRANCH_NAME" | sed -E 's/.*PROJ-([0-9]+)-.*/\1/'

执行后会输出:

12233

补充:关于grep的小说明

其实grep也能实现这个需求,只是需要用到特定选项:echo "$BRANCH_NAME" | grep -oP 'PROJ-\K[0-9]+',不过既然你需要sed方案,上面的命令完全能满足你的要求啦。

内容的提问来源于stack exchange,提问作者Sammy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 11:47:32