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:
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.