Imprima valores de datos de imagen Exif específicos con exiv2


8

¿Cómo imprimo la imagen Exif date con una herramienta como exiv2?

Mi objetivo es escribir la imagen año y mes en variables separadas. ¿Realmente tengo que analizar la salida con expresiones regulares o hay una alternativa a algo como esto:

exiv2 DSC_01234.NEF -ps | grep 'Image timestamp' | ...regex to parse the date

Respuestas:


7

Puede usar el -gindicador para generar solo la propiedad que le interesa e -Pvimprimir el valor sin ninguna pelusa circundante. El resultado es fácil de analizar.

IFS=': '
set $(exiv2 -g Exif.Image.DateTime -Pv DSC_01234.NEF)
unset IFS
year=$1 month=$2 day=$3 hour=$4 minute=$5 second=$6

También puede ser útil para cambiar la fecha del archivo para que coincida con la fecha de la imagen: exiv2 -T DSC_01234.NEF.


Eso es perfecto. Estoy tratando de mejorar mi conocimiento de bash mientras escribo un script que crea carpetas basadas en fechas para las imágenes y cambia el nombre de los archivos apropiadamente como mencionaste.
apparat

0
OIFS=$IFS; IFS=': '
set -- $(exiv2 -g Exif.Image.DateTime -Pv DSC_01234.NEF)
IFS=$OIFS;
year=$1; month=$2; day=$3; hour=$4; minute=$5; second=$6;
echo "$year:$month:$day $hour:$minute:$second"
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.