awk v1
Parece que você deseja usar o terceiro elemento de caminho combinado com o último elemento de caminho como o módulo a ser verificado. Nesse caso, você pode fazer assim dentro do awk:
awk -F/ '
{
split($NF, a, "-")
module=a[1] "-" a[2] "-" $6
print "svn co " $0 " " module
}' list.txt
Explicação
split
separa $NF
nos hifens na matriz a
(por exemplo, a[1] = issue
, a[2] = 001
e a[3] = name1
). Os dois primeiros elementos de a
são então concatenados junto com o terceiro elemento de caminho ( $6
) para produzir o nome do módulo desejado.
awk v2
Se a sua versão do awk suportar a especificação do separador de campos como uma expressão regular, você poderá usar esta alternativa mais simples:
awk -F'[/-]' '{ print "svn co " $0 " " $8 "-" $9 "-" $6 }' list.txt
sed
Uma alternativa do GNU sed:
sed -r 's:(([^/]*/){5})([^/]+)/([^/]+)/(([^-]+-){2})(.*):// :'
Explicação
-
(([^/]*/){5})
primeiros cinco elementos do caminho, note//
conta para dois elementos. -
([^/]+)
do bit do módulo. -
([^/]+)
o bit da ramificação. -
(([^-]+-){2})
primeiros dois elementos delimitados por hífen, por ex.issue-001-
.
Saída em todos os casos
svn co //svn.server.address/repos/project/module1/branches/issue-001-name1 issue-001-module1
svn co //svn.server.address/repos/project/module2/branches/issue-002-name2 issue-002-module2
svn co //svn.server.address/repos/project/module3/branches/issue-003-name3 issue-003-module3