Drucken Sie bestimmte exif-Bilddatenwerte mit exiv2

8

Wie drucke ich das Bild-Exif-Datum mit einem Tool wie exiv2?

Mein Ziel ist es, das Bildjahr und den Monat in separate Variablen zu schreiben. Muss ich die Ausgabe wirklich mit Regex analysieren oder gibt es eine Alternative zu so etwas:

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

Antworten:

7

Mit dem -gFlag können Sie nur die Eigenschaft ausgeben, an der Sie interessiert sind, und -Pvden Wert ohne umgebende Flusen drucken. Das Ergebnis ist leicht zu analysieren.

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

Es kann auch hilfreich sein, das Dateidatum so zu ändern, dass es mit dem Bilddatum übereinstimmt : exiv2 -T DSC_01234.NEF.

Gilles 'SO - hör auf böse zu sein'
quelle
Das ist perfekt. Ich versuche, meine Bash-Kenntnisse zu verbessern, während ich ein Skript schreibe, das datumsbasierte Ordner für die Bilder erstellt und die Dateien entsprechend umbenannt umbenennt.
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
quelle