$ echo "svn+ssh://[email protected]/repo 2015/branches/DEV_BRANCH_21/main/code/main_input.c" | grep -oP 'branches/.*?/\K.*'
main/code/main_input.c
$ echo "svn+ssh://[email protected]/repo-2015/branches/TEST_BRANCH_56/main/code/main_output.c" | grep -oP 'branches/.*?/\K.*'
main/code/main_output.c
-
branches/.*?/\K
significa que a string corresponde abranches
, seguida de/
e, em seguida, o texto até próximo/
. Veja perldoc - Documentação de referência para ler mais
com sed
sed 's|.*branches/[^/]*/||'
-
[^/]*
corresponderá ao texto diferente de/