Renomear arquivos e numerando-os.

1. Renomear arquivos e numerando-os.

Wilton Araújo Câmara
wiltontsi

(usa Debian)

Enviado em 04/09/2013 - 20:00h

Saudações...!
Tenho uma pasta com dezenas, ou até mesmo, centenas de arquivos e com diversos nomes, por exemplo: 103B747.jpg; 2843753C.jpg; 708954R.jpg...
Preciso renomeá-los para algo do tipo: imagem1.jpg; imagem2.jpg; imagem3.jpg; ...; imagemn.jpg...
Alguém sabe um sequência de comandos ou um script...? Obrigado


  


2. Re: Renomear arquivos e numerando-os.

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/09/2013 - 21:04h

Tenho algo pronto aqui no meu Evernote. rs...


#!/bin/bash

total=`ls *.jpg | wc -l`
j=1;

for i in `seq $total`
do
nome=`ls -1 *.jpg | head -n $i | tail -n 1`
mv -v $nome imagem$j.jpg
let j++;
done


Referência => http://codigosfontesdofujita.blogspot.com.br/2011/08/renomeando-arquivos-com-sequencia.html


3. Quase...!

Wilton Araújo Câmara
wiltontsi

(usa Debian)

Enviado em 05/09/2013 - 00:30h

O script pegou os arquivos e renomeou para:
imagem10.jpg
imagem11.jpg
imagem12.jpg
imagem13.jpg
imagem14.jpg
imagem15.jpg
imagem16.jpg
imagem1.jpg
renomear.sh

Mas na sequência do conforme a minha necessidade ele não fez (imagem2.jpg, imagem3.jpg, imagem4.jpg, ..., imagem9.jpg).

Eu com o vim criei um arquivo chamado renomear.sh com o seu o seu script e dei permissões +x.
O que estou fazendo errado...?
Obrigado pela atenção... valeu mesmo...!



4. Re: Renomear arquivos e numerando-os.

Fernando
phoemur

(usa Debian)

Enviado em 05/09/2013 - 09:01h


n=1; ls -bw1 --color=none *.jpg | while read FILE; do mv "$FILE" "imagem$n.jpg"; let n++; done

*tudo na mesma linha

Assim deve funcionar, mas o princípio é o mesmo do script do colega amarildo


5. Quase la...

Wilton Araújo Câmara
wiltontsi

(usa Debian)

Enviado em 05/09/2013 - 11:34h

Grande, ordenou, mas toda as vezes que acontece o número 1 ele joga o arquivo para cima:

imagem 10.jpg
imagem 11.jpg
imagem 12.jpg
imagem 13.jpg
imagem 14.jpg
imagem 15.jpg
imagem 16.jpg
imagem 1.jpg
imagem 2.jpg
imagem 3.jpg
imagem 4.jpg
imagem 5.jpg
imagem 6.jpg
imagem 7.jpg
imagem 8.jpg
imagem 9.jpg

Eu preciso:

imagem 001.jpg
imagem 002.jpg
imagem 003.jpg
imagem 004.jpg
imagem 005.jpg
imagem 006.jpg
imagem 007.jpg
imagem 008.jpg
imagem 009.jpg
imagem 010.jpg
imagem 011.jpg
imagem 012.jpg
imagem 013.jpg
imagem 014.jpg
imagem 015.jpg
imagem 016.jpg

Tentei mudar o n=1 para n=001 mas a minha falta de conhecimento não consegui exito...!
Você pode me ajudar mais uma vez...?


6. Re: Renomear arquivos e numerando-os.

Fernando
phoemur

(usa Debian)

Enviado em 05/09/2013 - 20:50h

Agora entendi o problema...rs

Ta aí:
Digamos que você queira um número com 3 digitos:
(se tiver mais de mil arquivos utilize com 4 digitos)


n=1; ls -bw1 --color=none *.jpg | while read FILE; do mv "$FILE" "imagem$(printf "%03d" $n).jpg"; let n++; done

*tudo na mesma linha

O printf é bem flexível quanto ao formato de saída que você desejar...

Veja:

phoemur ~/bash/teste $ ls -w1 *.jpg
imagem001.jpg
imagem002.jpg
imagem003.jpg
(...)



7. Resolveu...!

Wilton Araújo Câmara
wiltontsi

(usa Debian)

Enviado em 08/09/2013 - 11:41h

Valeu mesmo...!

Eu sou meio topera e programação, sem querer menosprezar o pobre animal...
Se precisar algo na área de Política de Segurança é só informar...!

Deus abençoe você e todos que postaram nesse tópico...!

Wilton


8. Renomear arquivos e numerando-os

George Gomes
georgegf

(usa Ubuntu)

Enviado em 04/12/2014 - 07:02h

Tive um problema com a ordenação natural dos arquivos mais foi só acrescentar o parâmetro "-v" no comando "ls"






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts