文字列を検索し、次の文字が表示されるまで削除します。

文字列を検索し、次の文字が表示されるまで削除します。

文字列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

そしてsed

sed 's|.*branches/[^/]*/||'
  • [^/]*以外のテキストと一致します。/

おすすめ記事