[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: script com renrot e bash para renomear arquivos jpg em lote



> Estou tentando fazer um script que renomeie as fotos que baixo da minha
> câmera no formato yymmdd-nn
> P.ex. 100612-01 (ano 10 mês 06 dia 12 - foto 01)>
> O programa renrot lê a etiqueta EXIF da foto e renomeia o arquivo com o
> comando
> renrot -n %y%m%d-%c arquivo
> Tentei algo como o script abaixo
> for foriginal in `ls -1 *.jpg`; do
>      echo -n "Renomeando $foriginal "
>      renrot -n %y%m%d-%c $foriginal
>      echo feito.
> done
> Mas acontece que %c (número da foto) sempre volta para o um. Assim eu
> necessitaria de um contator para o parêmetro --counter-start NUMBER
> Estou tentando algo como:
> n=0
> for foriginal in `ls -1 *.jpg`; do
>      n=echo $n+1 (sintaxe errado, como fazer o incremento de n?)
>      echo -n "Renomeando $foriginal "
>      renrot -n %y%m%d-%c --counter-start echo $n $foriginal
>      echo feito.
> done
> Esta utilização da variável n não está dando certo. Meus conhecimentos
> de bash são muito limitados.

Olá,

    De acordo com o manual do renrot, para funcionar o contador teria que
colocar todos os arquivo como parâmetro do renrot, assim esse código
todo seria:

renrot -n %y%m%d-%c *.jpg

    No caso de ainda não ser o que procura, isto é, a contagem não
acontecer por data se sim contínua por arquivo, sugiro fazer a
contagem da seguinte forma:

for original in *.jpg; do
    # renomeia o arquivo mais recente para o formato anomesdia.jpg
    renrot -n %y%m%d $original
    # Pega o nome do arquivo acima supondo ser o único no diretório com 6
números .jpg
    nome="`basename [0-9][0-9][0-9][0-9][0-9][0-9].jpg .jpg`"
    # Conta quantos arquivos tem essa data, inclusive o criado
    contador="`ls $nome*.jpg | grep -c .`"
    # Agora renomear esse criado para ter mais o contador no nome
    mv $nome.jpg $nome-$contador.jpg
    echo feito.
done

[]'s
       Junior Polegato



Reply to: