Renomeando vários arquivos de uma só vez com um padrão no Ubuntu

3

Eu tenho cerca de 300 arquivos chamados

some_name_123456789.zip
another-name2_987654321.zip
something(1)_123454321.zip
[2]something_987656789.zip

Eu preciso renomeá-los para

ds_123456789.zip
ds_987654321.zip
ds_123454321.zip
ds_987656789.zip

Como posso fazer isso?

    
por Xseba360 12.10.2013 / 21:13

2 respostas

9

Você pode fazer isso com o utilitário de linha de comando rename . Para fazer o que você quer, você precisa de uma expressão regular simples:

rename "s/.+_/ds/g" files

.+ representa tudo até (neste contexto) o último caractere de sublinhado ( _ ) (portanto, isso funciona com vários sublinhados, conforme mencionado em seu primeiro exemplo). Isso requer que haja pelo menos um caractere antes do sublinhado; Se você tiver nomes de arquivos como _20131012.zip , use .* . Portanto, essa string de três caracteres ( .+_ ou .*_ ) corresponderá a tudo até e incluirá o último sublinhado no nome do arquivo. s/old/new/ significa s ubstitua a nova string ( ds ) para a string antiga. O g significa g lobal e pode não ser necessário neste caso.

    
por 12.10.2013 / 21:41
1

ou, usando o renomeador :

entre plataformas
$ renamer --regex --find '.+_' --replace 'ds' *
    
por 13.10.2013 / 15:37