Se você tiver o rename baseado em Perl (às vezes conhecido como prename ), isso é realmente possível. Se você entende Expressões Regulares, é ainda mais simples.
rename -n 's!^(\d+) - (.*)\.(...)$!$2 ($1).$3!' *.avi
O que isso faz é dividir o nome do arquivo de origem em três componentes. Usando seu primeiro exemplo, estes seriam
- 1937
- Branca de Neve e os Sete Anões
- avi
Estes são atribuídos a $1 , $2 , $3 dentro do comando rename . (Estas não são bash variáveis.) Em seguida, as reúne novamente na ordem diferente.
Quando estiver satisfeito com o resultado proposto, altere o -n para -v ou remova-o completamente.