Como recursivamente adicionar zeros a um nome de arquivo [duplicado]

1

Eu tenho uma pasta com esses arquivos:

03.jpg
04.jpg
05.jpg
99.jpg

Eu quero renomear esses arquivos para

003.jpg
004.jpg
005.jpg
099.jpg

usando um script bash. Como posso fazer isso?

    
por kevin 20.09.2015 / 10:15

1 resposta

0

Tente fazer isso:

rename -n 's/\d+/sprintf("%.03d", $&)/e' *jpg

(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.

    
por 20.09.2015 / 14:07