如何使用Bash从GitHub仓库URL中提取项目名称?
实现方案
下面是几种Shell环境下可直接使用的实现方法,均兼容HTTPS格式的GitHub仓库地址,其中参数扩展、awk、sed方案同时兼容SSH格式的仓库地址,不受仓库所属主体/路径前缀影响:
- 方法1:使用
basename命令(最简单的HTTPS地址适配方案,仅需一行)
url='https://github.com/Project/name-app.git' result=$(basename "$url" .git) echo $result
说明:basename会自动提取路径的最后一段,第二个参数指定需要移除的后缀,直接得到目标项目名
- 方法2:纯Bash参数扩展(无外部命令依赖,执行效率最高)
url='https://github.com/Project/name-app.git' # 移除所有字符直到最后一个/ temp=${url##*/} # 移除末尾的.git后缀 result=${temp%.git} echo $result
- 方法3:使用
awk处理
url='https://github.com/Project/name-app.git' result=$(echo "$url" | awk -F/ '{sub(/\.git$/, "", $NF); print $NF}') echo $result
- 方法4:使用
sed正则匹配
url='https://github.com/Project/name-app.git' result=$(echo "$url" | sed 's/.*\/\([^/]*\)\.git$/\1/') echo $result
所有方法执行后输出均为name-app,符合需求。
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

