Ваша основная проблема заключается в том, что вы пытаетесь использовать /
в качестве разделителя, когда /
также является символом, который вы будете разбирать.
Вам нужно использовать другой разделитель, например, трубу. Сопоставьте все и /
, затем используйте \(
и \)
(группы захвата), отделяя часть, которую вы хотите извлечь, и используйте \1
, выделяя эту группу:
echo "yourstring" | sed 's|.*/\([^/]*\)$|\1|'
Вы можете работать без групп захвата: просто отбрасывая все до последней /
:
echo "yourstring" | sed 's|.*/||'