Você pode usar o comando rename
baseado em perl: baseado nos 3 exemplos que você deu até agora, algo como
rename 's/(.*)\s+[-]\s+(.*)\.(.{3,4})/ - ./' *.*
deve funcionar no entanto, teste primeiro adicionando as opções -n
e -v
, ou seja,
$ touch "War of the World - H. G. Well.pdf"
$ touch "Harry Potter blah de blah - J.K.Rowling.pdf"
$ touch "Some Other Title - Firstname Surname.epub"
$
$ rename -nv 's/(.*)\s+[-]\s+(.*)\.(.{3,4})/ - ./' *.*
Harry Potter blah de blah - J.K.Rowling.pdf renamed as J.K.Rowling - Harry Potter blah de blah.pdf
Some Other Title - Firstname Surname.epub renamed as Firstname Surname - Some Other Title.epub
War of the World - H. G. Well.pdf renamed as H. G. Well - War of the World.pdf
Veja man rename
para uso