文字列1:svn+ssh://[email protected]/repo-2015/branches/DEV_BRANCH_21/main/code/main_input.c
出力が必要:main/code/main_input.c
文字列2:svn+ssh://[email protected]/repo-2015/branches/TEST_BRANCH_56/main/code/main_output.c
出力が必要:main/code/main_output.c
これを試しました。
echo "svn+ssh://[email protected]/repo 2015/branches/DEV_BRANCH_21/main/code/main_input.c" | sed -e 's/^.*\(branches\/\)//g'
四半期後、次の「/」をどのように進めて削除するのかわかりません。
ベストアンサー1
$ 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
文字列一致、branches
次/
、次のテキストを表します/
。バラよりperldoc - ドキュメントツアーさらなる読書のために
そしてsed
sed 's|.*branches/[^/]*/||'
[^/]*
以外のテキストと一致します。/