Напечатайте определенные значения данных изображения Exif с exiv2

8

Как напечатать изображение Exif date с помощью инструмента, подобного exiv2?

Моя цель - записать год и месяц изображения в отдельные переменные. Мне действительно нужно анализировать вывод с помощью регулярного выражения или есть альтернатива чему-то вроде этого:

exiv2 DSC_01234.NEF -ps | grep 'Image timestamp' | ...regex to parse the date
аппарат
источник

Ответы:

7

Вы можете использовать -gфлаг, чтобы вывести только интересующее вас свойство, и -Pvнапечатать значение без какого-либо окружающего пуха. Результат легко разобрать.

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

Он также может быть полезно , чтобы изменить дату файла , чтобы соответствовать дате: exiv2 -T DSC_01234.NEF.

Жиль "ТАК - перестань быть злым"
источник
Отлично. Я пытаюсь улучшить свои знания bash, когда пишу скрипт, который создает папки изображений на основе даты и переименовывает файлы соответствующим образом, как вы упомянули.
аппарат
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"
Дмитрий
источник