如何在bash中从URL提取子字符串
我有以下字符串如何在bash中从URL提取子字符串,bash,Bash,我有以下字符串 git@bitbucket.org:user/my-repo-name.git 我想提取这部分 my-repo-name 对于bash: s='git@bitbucket.org:user/my-repo-name.git' [[ $s =~ ^.*/(.*)\.git$ ]] echo ${BASH_REMATCH[1]} 输出: my-repo-name my-repo-name 我的回购协议名称 对于bash: s='git@bitbucket.org:user/m
git@bitbucket.org:user/my-repo-name.git
我想提取这部分
my-repo-name
对于bash:
s='git@bitbucket.org:user/my-repo-name.git'
[[ $s =~ ^.*/(.*)\.git$ ]]
echo ${BASH_REMATCH[1]}
输出:
my-repo-name
my-repo-name
我的回购协议名称
对于bash:
s='git@bitbucket.org:user/my-repo-name.git'
[[ $s =~ ^.*/(.*)\.git$ ]]
echo ${BASH_REMATCH[1]}
输出:
my-repo-name
my-repo-name
我的回购协议名称
使用bash的另一种方法: 输出: my-repo-name
my-repo-name
我不确定是否有办法将
#
和%
运算符组合成一个替换。另一种方法,使用bash的:
输出:
my-repo-name
my-repo-name
我不确定是否有办法将
#
和%
运算符组合到一个替换中。不幸的是,参数扩展不能嵌套在bash
中。(zsh
将允许嵌套${{s}*/}%.git}
,以及更简单的$s:t:r
)不幸的是,参数扩展不能嵌套在bash
中。(zsh
将允许嵌套${${s#*/}%.git}
,以及更简单的$s:t:r
)