Aviso: La filosofía de este foro público de preguntas y respuestas, es que sea participativo. Pretendemos que la comunidad de usuarios de nuestros portátiles compartan su experiencia. Queremos ayudarles y a la vez recibir ayuda para mejorar. Gracias por participar, entre todos hacemos de este un lugar mejor.

 

Para más información sobre el sistema de puntos pulsa aquí


0

experto

Ayuda con script

Ramon On Sábado, 11 Junio 2016.
Categoría: Linux
Tags:

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. de momento he llegado hasta aqui y me encuentro un poco atascado, quizas no este bien planteado desde un principio , pero es que no se por donde seguir:   ls -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   He estado utilizando el programa exiv2 para mostrar y modificar datos exif.   Si alguien me pudiese echar una mano le estaria muy agradecido,me queda solo esto para aprobar la ultima asignatura. Gracias y saludos.
 

Todas las respuestas

4 Respuestas.

0

experto

Re:Ayuda con script
Ramon On Sábado, 11 Junio 2016

ls -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


0

experto

Re:Ayuda con script
Ramon On Sábado, 11 Junio 2016

en la primera se consulta se me ha liado, pero el script que llevo echo hasta el momento es este, no se si se entiende bien.espero que si.



0
STAFF

staff

Re:Ayuda con script
alejandro On Lunes, 13 Junio 2016

Hola Ramón,

La duda no está relacionada con los Slimbook y su funcionamiento en Linux, pero te diré:

El primer error que hay es que hayas llamado a una función "Añadir" no debes usar la ñ ni acentos, etc.

¿Este es todo tu fichero? Es que esto es sólo el comienzo, he corregido un par de errores y ejecutado y aparte de lo que se ve funciona, pero le faltan docenas de lineas de programación.

En realidad, podrías hacer esta pregunta en un foro de programación, pero es difícil que alguien te haga el script completo para el final del proyecto. No es lo mismo que preguntes "algo concreto que te falla", o "como paso una variable que no me la coge aquí", o algo concreto y determinado. No algo tan genérico, como te decía te faltan docenas de lineas de código para hacerlo y es difícil que algún usuario del foro tenga tiempo de hacerte el programita completo.

Ayer una compañera de Slimbook intentó ayudarte, y como ella no controla programación, puso en nuestro Tweeter y en nuestro Facebook un mensaje por si alguien podía ayudarte, y por lo que veo, ya han entrado a tu pregunta 250 veces y nadie te ha respondido, seguramente por eso, le falta mucho al programita.

Programa que en realidad, tocará la materia que hayas estudiado y que en realidad tendrás parcialmente en los libros o apuntes del curso. Y si algo no se ha explicado, cuando yo estudiaba, tenía un "tutor del proyecto" que resolvía las dudas que no se habían visto en el curso, o que no había podido encontrar en Google.

Siento decirte que a ese programa la faltan muchas líneas de código.

 



0

experto

Re:Ayuda con script
Ramon On Lunes, 13 Junio 2016

Hola Alejandro,

Se que este no es el foro y te pido disculpas, he actuado un poco por desesperacion, despues de muchas horas de busquedas por ahi, se que le falta mucho al script y que no voy por el camino correcto, pero lamentablemente es hasta donde llego, y en cuanto a lo del tutor, no tengo la suerte de tener profesores que realmente se preocupen, te dicen 4 cosas y que te apañes, pero bueno, tampoco es tu problema.

Siento haber comentado esta consulta aqui, solamente agradecer los dos pequeños detalles que me comentas de la funcion, y aprovecho para decir que estoy muy contento con mi slimbook y mas aun con vuestro trato.

Un saludo grande.Gracias.