Imprima valores específicos de dados de imagem Exif com exiv2

8

Como imprimo a data Exif da imagem com uma ferramenta como exiv2?

Meu objetivo é escrever a imagem ano e mês em variáveis ​​separadas. Eu realmente tenho que analisar a saída com regex ou existe uma alternativa para algo como isto:

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

Respostas:

7

Você pode usar o -gsinalizador para gerar apenas a propriedade em que está interessado e -Pvimprimir o valor sem qualquer penugem ao redor. O resultado é fácil de analisar.

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

Também pode ser útil para mudar a data do arquivo para coincidir com a data de imagem: exiv2 -T DSC_01234.NEF.

Gilles 'SO- parar de ser mau'
fonte
Perfeito. Estou tentando melhorar meu conhecimento do bash enquanto escrevia um script que cria pastas com base em datas para as imagens e renomeia os arquivos adequadamente como você mencionou.
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
fonte