Categories
linux programación ubuntu

Ordenar fotos según fecha de toma

A veces vamos de fiesta, o de excursión, y son varias las personas que toman fotos con sus cámaras, y que más tarde comparten con los demás. La tarea de juntarlas todas ya es difícil de por sí (perezosos que son algunos :P), así que una vez que se tienen juntas, suele ocurrir que cada cámara tiene su propia forma de nombrar las fotos, y también su propia numeración.

Por ello me he creado este script que renombra las fotos respetando el orden en el que se tomaron las fotos. Para que esto funcione, es necesario que todas las cámaras de fotos tengan la fecha correcta, porque de lo contrario, los datos exif que lee el script, serán erróneos.

#!/bin/bash

#Forma de usar:

# sh ordena.sh *.jpg *.JPG …

# el resultado es una carpeta “ordenadas” con las fotos

# renombradas según la fecha en la que se tomaron

# Ficheros usados por el programa

FICHERO_ORDENACION=orden.txt

FICHERO_ORDENADO=ordenado.txt

>$FICHERO_ORDENADO

>$FICHERO_ORDENACION

# Recorrer todos las fotos pasadas como parámetro

# y almacenarlas en un fichero con su fecha de captura

for NOMBRE in $@

do

FECHA=`exif $NOMBRE | grep origi | cut d‘|’ f2`

echo $FECHA @ $NOMBRE >> $FICHERO_ORDENACION

done

# Ordenar el fichero segun las fechas

cat $FICHERO_ORDENACION | sort n >$FICHERO_ORDENADO

# Crear una carpeta para las fotos ordenadas

mkdir ordenadas

# Recorrer el fichero de fotos ordenadas, y copiarlas con

# un nuevo nombre a la carpeta “ordenadas”

a=0;

while read line

do

a=$(($a+1));

NUMERO=`printf “%04d” $a`;

NOMBRE=`echo $line | cut d‘@’ f2`;
FICHERO=`echo $NUMERO.jpg`;

cp $NOMBRE ./ordenadas/$FICHERO

done <$FICHERO_ORDENADO

# Borrado de ficheros temporales

rm $FICHERO_ORDENADO

rm $FICHERO_ORDENACION

Para poder usar el script es necesario tener instalado el paquete exif:

sudo aptitude install exif

Para quien prefiera descargar el archivo aqui.

4 replies on “Ordenar fotos según fecha de toma”

Excelente script, como logro que , me acomode por carpetas de acuerdo a fecha pero por carpeta??? que cree una carpeta 20120404 y ai meta todas las fotos de esa fecha??

[Responder]

sucotronic Reply:

@jesus, tienes que modificar el script para que en el bucle donde se renombran las fotos y se copian, se comprobase si existe una carpeta con el nombre que tu quieres, sino crearlo, y meter la foto ahí dentro. No debería llevar más de 20 minutos de hacerlo y probarlo, pero siento no poder hacerlo yo ahora mismo 😛

[Responder]

Leave a Reply

Your email address will not be published. Required fields are marked *