Altere os arquivos de x # .jpg para x ###. jpg

0

Eu tenho um monte de arquivos x1.jpg, x2.jpg, x3.jpg, etc. que precisam ser nomeados x001.jpg, x002.jpg, x003.jpg, etc. Como posso fazer isso?

Editar: estou executando o Windows, mas tenho o cygwin instalado.

    
por Gilles 06.08.2010 / 09:07

6 respostas

1

Para renomear arquivos de imagem em massa no Windows (assim como redimensionar, cortar, converter, etc.), geralmente uso IrfanView (Freeware)

    
por 06.08.2010 / 16:19
0

Qual sistema operacional? * nix tem o utilitário de linha de comando rename , que parece ser adaptado exatamente para esse tipo de coisa.

    
por 06.08.2010 / 09:08
0

Uma abordagem mais genérica do que rename (que não está disponível em todos os * nix), e potencialmente permitindo bastante criatividade:

find . -name 'x*' | while read filename; do mv "$filename" $(echo "$filename" | sed -e 's/x/x00/'); done
    
por 06.08.2010 / 11:46
0

Cygwin, doce.

for NEWNUM in $(seq -w 1 100)
do
    OLDNUM=$(echo $NEWNUM | sed -e 's/^0*//')
    echo $OLDNUM $NEWNUM
    # mv x${OLDNUM}.jpg x${NEWNUM}.jpg
done

Isso deve funcionar. Bem diferente do que comentou mv. O sinalizador -w para seq significa 'wide', significando begin pad com zeros quando necessário

    
por 06.08.2010 / 16:46
0

A renomeação múltipla ou em massa pode ser chamada de renomeação em lote.

Total Commander é gerenciador de arquivos. Tem recurso de renomeação em lote. Você pode ver o tutorial ou lá .

O Irfan View é um navegador / editor de imagens. Tem renomear lote também. Você pode ver o tutorial .

Eu prefiro o Total Commander. Tem clones do Linux e eles provavelmente podem renomear arquivos também.

Ambos os programas são para o Windows. Ambos devem funcionar no Linux também por emulação.

    
por 05.07.2011 / 18:23
0

Em puro bash:

for a in x?.jpg; do mv "$a" "${a/x/x00}"; done
for a in x??.jpg; do mv "$a" "${a/x/x0}"; done
    
por 05.07.2011 / 19:18

Tags