0

Our repositories data directory path is looks like /srv/git/repositories/group/subgroup/project.git and I would like to get path name after repositories and assign it to a variable. I have tried below command didn't giving me any output. The path name before and after repositories changes so I didn't give absolute path in sed filter

pwd = srv/git/repositories/ group/subgroup/project.git [look a like]

RW_DIR=$(echo $pwd | sed 's/.*/repositories/\(*\).*/\1/') 

Expecting output

RW_DIR=group/subgroup/project [just project name not project.git]

Can anyone please help in getting the output.

I appreciate everyone's help

Thank you all

Prs
  • 87
  • 1
  • 11

1 Answers1

0
$ echo '/srv/git/repositories/group/subgroup/project.git' |
    sed -E 's|.*repositories/(.*)\.git$|\1|'

or

$ echo '/srv/git/repositories/group/subgroup/project.git' |
    sed -E 's|.*repositories/||; s|\.git$||' 

or

$ echo '/srv/git/repositories/group/subgroup/project.git' |
    grep -oP 'repositories/\K.*(?=\.git)'

or if the number of subdirs are fixed :

$ echo '/srv/git/repositories/group/subgroup/project.git' |
    awk -F'[./]' 'BEGIN{OFS="/"}{print $5,$6,$7}' 

Output :

group/subgroup/project
Gilles Quénot
  • 173,512
  • 41
  • 224
  • 223