Desenvolvi este script para organizar a reunião de fotos de mais de uma máquina digital. Desta forma, independente como as câmera registram o nome de arquivo, as fotos são renomeadas de acordo com a sequência cronológica.
Primeiro, os nomes são renomeados para maiúsculas como foi no post Renomear de maiúscula para minúscula e com sequência numérica .
O comando ls -1 *.jpg trata de colunar todos os arquivos com essa extensão e a cada linha que avança, as variáveis ano, mes, dia, hora, mim, seg recebem seus respectivos valores e o comando tee -a faz duas tarefas:
- exibe a saída na tela
- armazena a saída no arquivo foto.txt
#/bin/bash for M in *.JPG do m=$(echo $M | tr A-Z a-z) mv -v $M $m done ls -1 *.jpg | { while read arq; do ano=`exiftool "$arq" | grep Original | sed 's/://g' | sed 's/ //g' | cut -c 18-21` mes=`exiftool "$arq" | grep Original | sed 's/://g' | sed 's/ //g' | cut -c 22-23` dia=`exiftool "$arq" | grep Original | sed 's/://g' | sed 's/ //g' | cut -c 24-25` hora=`exiftool "$arq" | grep Original | sed 's/://g' | sed 's/ //g' | cut -c 26-27` min=`exiftool "$arq" | grep Original | sed 's/://g' | sed 's/ //g' | cut -c 28-29` seg=`exiftool "$arq" | grep Original | sed 's/://g' | sed 's/ //g' | cut -c 30-31` echo "$arq" $ano$mes$dia$hora$min$seg done } | tee -a fotos.txt cat fotos.txt | awk '{printf "%s %4s\n",$2,$1}' | sort -n > fotos2.txt total=`ls *.jpg | wc -l` for i in `seq 9` do file=`head -n $i fotos2.txt | tail -n 1 | cut -f2 -d ' '` mv -v $file 00$i.jpg done for i in `seq 10 1 99` do file=`head -n $i fotos2.txt | tail -n 1 | cut -f2 -d ' '` mv -v $file 0$i.jpg done for i in `seq 100 1 $total` do file=`head -n $i fotos2.txt | tail -n 1 | cut -f2 -d ' '` mv -v $file $i.jpg done
Recomendo esta automatição de renomear arquivos de acordo com o data e hora quando várias pessoas participaram da mesma viagem, por exemplo. Assim, a visualização não será exibida em dias alternados. Para encerrar, dois cuidados:
- Garantir a câmera de todos estejam com a data e hora correta. Não precisam estar sincronizadas, apenas corretas.
- Difícil acontecer, mas caso exista um arquivo que até foi tirada no mesmo segundo, uma das fotos será sobreescrita.
Murilão!
ResponderExcluirAi um script que fiz também https://gist.github.com/665531
Ai ele já busca em uma pasta todas fotos bagunçadas que jogamos e manda para outra uma cópia.