script para hacer consultas a un directorio con subdirectorios llenos de fotos, y hacer consultas
Publicado por rammas (2 intervenciones) el 12/06/2016 16:24:19
Hola a todos, estoy realizando un script para final de proyecto no es muy complicado en teoria pero estoy un poco atascado,el ejercicio es el siguiente:
Los archivos de imágenes, en especial los de fotos, guardan los datos *exif .
Hay que hacer un script que permita, dado un directorio con subdirectorios llenos de fotos, hacer consultas del tipo:
Todas las fotos hechas en una cámara Canon
Todas las fotos del 2015
Todas las fotos hechas con una focal de 50mm
Al iniciar el script, mostrará una lista con todas las fotos que ha encontrado. A continuación, ofrecerá un menu:
1 Filtrar por etiqueta.
2 Añadir etiqueta a las fotos seleccionadas.
3 Renombrar archivo utilizando una etiqueta.
4 Mesa de archivos y etiquetas.
1 La primera opción dará una lista de posibles etiquetas numeradas, una vez seleccionado, dará una lista de todos los valores únicos encontrados en las fotos seleccionadas. En la lista se podrá quitar el filtro.
El filtro quedara permanente hasta que se quite. El filtro afecta a los otras opciones del menu.
2 Para añadir, imprimirá el mismo menú que el de filtrar. Y después dejará escribir lo que quiera el usuario.
3 Para renombrar, primero se selecciona la etiqueta, un prefijo y un sufijo.
4 La lista se mostrará tabulada con el nombre de archivo recortado a 20 letras y las etiquetas más comunes.
Lo tengo algo empezado pero no se si voy bien encaminado...y me he atascado, quizas haya alguien que lo vea mucho mas claro y me pueda echar una mano.Hasta el momento tengo esto:
Los archivos de imágenes, en especial los de fotos, guardan los datos *exif .
Hay que hacer un script que permita, dado un directorio con subdirectorios llenos de fotos, hacer consultas del tipo:
Todas las fotos hechas en una cámara Canon
Todas las fotos del 2015
Todas las fotos hechas con una focal de 50mm
Al iniciar el script, mostrará una lista con todas las fotos que ha encontrado. A continuación, ofrecerá un menu:
1 Filtrar por etiqueta.
2 Añadir etiqueta a las fotos seleccionadas.
3 Renombrar archivo utilizando una etiqueta.
4 Mesa de archivos y etiquetas.
1 La primera opción dará una lista de posibles etiquetas numeradas, una vez seleccionado, dará una lista de todos los valores únicos encontrados en las fotos seleccionadas. En la lista se podrá quitar el filtro.
El filtro quedara permanente hasta que se quite. El filtro afecta a los otras opciones del menu.
2 Para añadir, imprimirá el mismo menú que el de filtrar. Y después dejará escribir lo que quiera el usuario.
3 Para renombrar, primero se selecciona la etiqueta, un prefijo y un sufijo.
4 La lista se mostrará tabulada con el nombre de archivo recortado a 20 letras y las etiquetas más comunes.
Lo tengo algo empezado pero no se si voy bien encaminado...y me he atascado, quizas haya alguien que lo vea mucho mas claro y me pueda echar una mano.Hasta el momento tengo esto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
s -R | grep -i '\.jpg' | tr '\n' ' '
echo -e "MENU\n"
echo "1.Filtrar por etiqueta"
echo "2.Añadir etiqueta a la foto seleccionada"
echo "3.Renombrar archivo utilizando una etiqueta"
echo "4.Tabla de archivos y etiquetas"
echo
Filtrar(){
echo "1.Nombre de archivo"
echo "2.Tamaño"
echo "3.Fecha"
echo "4.Modelo Camara"
read opc1
case $opc1 in
1)
read -p "Introduce nombre: " name
exiv2 * | grep --binary-files=text "File name : $name" ;;
2)
read -p "Introduce tamaño: " size
exiv2 * | grep --binary-files=text "Image size : $size" ;;
3)
read -p "Introduce Fecha: " timestamp
exiv2 * | grep --binary-files=text "Image timestamp : $timestamp" ;;
4)
read -p "Introduce Modelo Camara: " model
exiv2 * | grep --binary-files=text "Camera model : $model" ;;
esac
}
Añadir(){
echo "1.Añadir nueva etiqueta"
echo "2.Modificar Tamaño"
echo "3.Cambiar fecha"
echo "4.Añadir comentario"
case opc2 in
1)
read -p "Introduce nueva etiqueta" ;;
2)
read -p "Introduce nuevo tamaño" ;;
3)
read -p "Introduce nueva fecha" ;;
4)
read -p "Añade comentario a tu foto" ;;
esac
}
read -p "Introduce numero de opcion deseada: " OPCION
echo
case $OPCION in
1 ) Filtrar ;;
2 ) Añadir ;;
3 ) Renombrar ;;
4 ) Tabla ;;
esac
Valora esta pregunta
0