bash, как и чем переименовать группу файлов?

Подскажите код, переименовать группу файлов?
К примеру, сейчас так:
Princess of the Dawn - Accept.mp3
Cradle Of Love - Billy Idol.mp3   
Sweet Sixteen - Billy Idol.mp3
Livin On A Prayer - Bon Jovi.mp3  
Runaway - Bon Jovi.mp3
The Unforgiven - Metallica.mp3
Send Me An Angel - Scorpions.mp3
Still Loving - Scorpions.mp3

Хочу так:
Accept - Princess of the Dawn.mp3
Accept - Time Machine.mp3
Billy Idol - Cradle Of Love.mp3
Billy Idol - Sweet Sixteen.mp3
Bon Jovi - Livin On A Prayer.mp3
Bon Jovi - Runaway.mp3
Metallica - Nothing Else Matters.mp3
Metallica - The Unforgiven.mp3
Scorpions - Send Me An Angel.mp3
Scorpions - Still Loving.mp3

P.S чем лучше это делать: sed, awk, rename, basename?
Система macOS.

Ответы (1 шт):

Автор решения: Zt.
ls | awk -F'( - )|[.]' '{system("mv \""$0"\" \""$2" - "$1"."$3"\"")}'

здесь мы используем два разделителя полей, один " - " а второй точка "."

В названии трека данные разделители должны встречаться единожды, а иначе может пойти что-то не так.

→ Ссылка