Tente isto
% ls -1
001-foobar.pdf
002-foobar.pdf
003-foobar.pdf
Código
% rename -n 's/([^-]+)-([^\.]+)\.pdf/$2-$1.pdf/' *.pdf
001-foobar.pdf -> foobar-001.pdf
002-foobar.pdf -> foobar-002.pdf
003-foobar.pdf -> foobar-003.pdf
Nota
(remove -n muda quando seus testes estão OK)
aviso http://pix.toile-libre.org/upload/original/1377510865.png Existem outras ferramentas com o mesmo nome que podem ou não ser capazes de fazer isso, então seja cuidadoso.
Se você executar o seguinte comando ( GNU
)
$ file "$(readlink -f "$(type -p rename)")"
e você tem um resultado como
.../rename: Perl script, ASCII text executable
e não contendo:
ELF
então esta parece ser a ferramenta certa =)
Se não, para torná-lo o padrão (normalmente já é o caso) em Debian
e derivado como Ubuntu
:
$ sudo update-alternatives --set rename /path/to/rename
(substitua /path/to/rename
pelo caminho do comando perl's rename
.
Se você não tiver esse comando, pesquise seu gerenciador de pacotes para instalá-lo ou faça isso manualmente
Por último, mas não menos importante, esta ferramenta foi originalmente escrita por Larry Wall, o pai do Perl.