我们的存储库数据目录路径看起来像 /srv/git/repositories/group/subgroup/project.git ,我想在存储库之后获取路径名称将其分配给变量。我试过下面的命令没有给我任何输出。 存储库之前和之后的路径名更改,因此我没有在sed过滤器中给出绝对路径
pwd = srv / git / repositories / group / subgroup / project.git [看起来像]
RW_DIR=$(echo $pwd | sed 's/.*/repositories/\(*\).*/\1/')
期待输出
RW_DIR = group / subgroup / project [只是项目名称而不是project.git]
任何人都可以帮忙获得输出。
我感谢大家的帮助
谢谢大家
答案 0 :(得分:0)
$ echo '/srv/git/repositories/group/subgroup/project.git' |
sed -E 's|.*repositories/(.*)\.git$|\1|'
或
$ echo '/srv/git/repositories/group/subgroup/project.git' |
sed -E 's|.*repositories/||; s|\.git$||'
或
$ echo '/srv/git/repositories/group/subgroup/project.git' |
grep -oP 'repositories/\K.*(?=\.git)'
或者如果子目录的数量是固定的:
$ echo '/srv/git/repositories/group/subgroup/project.git' |
awk -F'[./]' 'BEGIN{OFS="/"}{print $5,$6,$7}'
group/subgroup/project