Script shell pour extraire le nom de l’application

J’ai des repo_URLs dans Jenkins pour divers travaux qui ressemblent à:

ssh://[email protected]:7999/sad/agreement-edge.git ssh://[email protected]:7999/che/agreement-middle.git ssh://[email protected]:7999/char/login-edge.git 

Je dois en extraire le côté accord-accord, accord-milieu, connexion .

Disons que repo url est défini comme une variable

RepoEndpoint = ssh: //[email protected]: 7999 / sad / agreement-edge.git

Comment puis-je en extraire l’accord?

Avec l’ extension de paramètre de bash:

 RepoEndpoint="ssh://[email protected]:7999/sad/agreement-edge.git" RepoEndpoint="${RepoEndpoint%.*}" RepoEndpoint="${RepoEndpoint##*/}" echo "$RepoEndpoint" 

Sortie:

 accord-bord

version sed , que vous pouvez exécuter sur un fichier (si vous avez plusieurs lignes à traiter):

 sed 's=.*/\(.*\).git$=\1=' file_name 

ou directement sur la chaîne:

 sed 's=.*/\(.*\).git$=\1=' <<< 'ssh://[email protected]:7999/sad/agreement-edge.git' 

... ou avec une variable:

 sed 's=.*/\(.*\).git$=\1=' <<< "$RepoEndPoint"