Imprimer des valeurs de données d'image Exif spécifiques avec exiv2

8

Comment imprimer la date Exif de l'image avec un outil comme exiv2?

Mon objectif est d'écrire l'image et le mois de l'image dans des variables distinctes. Dois-je vraiment analyser la sortie avec regex ou existe-t-il une alternative à quelque chose comme ceci:

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

Réponses:

7

Vous pouvez utiliser l' -gindicateur pour afficher uniquement la propriété qui vous intéresse et -Pvpour imprimer la valeur sans aucun fluff environnant. Le résultat est facile à analyser.

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

Il peut également être utile de changer la date du fichier pour correspondre à la date d'image: exiv2 -T DSC_01234.NEF.

Gilles 'SO- arrête d'être méchant'
la source
C'est parfait. J'essaie d'améliorer mes connaissances bash tout en écrivant un script qui crée des dossiers basés sur la date pour les images et renomme les fichiers de manière appropriée comme vous l'avez mentionné.
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"
Dmitry
la source