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

如何在sed语句中合并正则提取docker-compose版本号

合并sed命令提取不同格式的docker-compose版本号

针对两种不同格式的docker-compose --version输出:

  • 格式1:docker-compose version 1.29.2, build someId
  • 格式2:Docker Compose version v2.12.2

可以用一条sed命令兼容两种情况,直接提取版本号:

docker-compose --version | sed -nr 's/^(docker-compose|Docker Compose) version v?([0-9]+\.[0-9]+\.[0-9]+).*/\2/p'

命令解释

  • ^(docker-compose|Docker Compose):匹配输出开头的两种命令标识,兼容v1版本的小写无空格和v2版本的大写带空格格式
  • version v?:匹配"version"关键字,v?表示后面的v字符是可选的(v2版本会带v前缀,v1版本没有)
  • ([0-9]+\.[0-9]+\.[0-9]+):精准捕获主版本号(如1.29.2、2.12.2),避免把后面的build信息或多余内容包含进来
  • .*:匹配版本号之后的所有剩余内容,确保整个行都被处理
  • \2:提取第二个捕获组的内容,也就是我们需要的版本号
  • -nr参数:n启用静默模式(不自动输出每行内容),r启用扩展正则表达式支持

扩展:兼容预发布版本号

如果你的docker-compose版本包含预发布标签(如2.12.2-beta.1),可以调整正则来兼容:

docker-compose --version | sed -nr 's/^(docker-compose|Docker Compose) version v?([0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.]+)?).*/\2/p'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:25:39