Masalah utama Anda adalah Anda mencoba menggunakan / sebagai pemisah, saat / juga merupakan karakter yang akan Anda parsing.
Anda harus menggunakan pemisah yang berbeda, seperti pipa. Cocokkan semuanya dan / , lalu gunakan \( dan \) (capture groups) batasi bagian yang ingin Anda ekstrak, dan gunakan \1 , merender grup itu:
echo "yourstring" | sed 's|.*/\([^/]*\)$|\1|'
Anda mungkin membuatnya berfungsi tanpa grup penangkap:hanya menjatuhkan semuanya hingga / terakhir :
echo "yourstring" | sed 's|.*/||'
Mengapa tidak menggunakan basename untuk ini? Misalnya:
for file in *mp3; do basename "$file"; done