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.