Váš hlavní problém je, že se pokoušíte použít / jako oddělovač, když / je to také postava, kterou budete analyzovat.
Budete muset použít jiný oddělovač, například trubku. Spojte vše a / a poté použijte \( a \) (skupiny zachycení) ohraničující část, kterou chcete extrahovat, a použijte \1 , čímž se skupina vykreslí:
echo "yourstring" | sed 's|.*/\([^/]*\)$|\1|'
Možná to bude fungovat bez zachycovacích skupin:stačí vypustit vše až do posledních / :
echo "yourstring" | sed 's|.*/||'
Proč nepoužít basename pro tohle? Například:
for file in *mp3; do basename "$file"; done