Para um monte de jpg
fotos, eu tenho esse script (simplificado) para poder extrair a data original quando a foto foi tirada (se diferente de 0000: 00: 00, não relevante para este caso)
for f in *.jpg;
do
echo -n $f " >> " ;
/usr/bin/exiv2 -P E pr $f | grep 'Exif.Photo.DateTimeOriginal';
done
Mas o canal de exiv2
a grep
às vezes recupera as informações presentes nos metadados das fotos, às vezes não.
O conjunto de testes da lista de arquivos é:
$ ls
sany0070.jpg sany0071.jpg sany0072.jpg sany0073.jpg sany0074.jpg
O que eu recebo disso é um resultado inconsistente, como:
$ for f in *.jpg; do echo -n $f " >> " ; /usr/bin/exiv2 -P E pr $f | grep 'Exif.Photo.DateTimeOriginal'; done
sany0070.jpg >> Exif.Photo.DateTimeOriginal Ascii 20 0000:00:00 00:00:00
sany0071.jpg >> Exif.Photo.DateTimeOriginal Ascii 20 0000:00:00 00:00:00
sany0072.jpg >> Exif.Photo.DateTimeOriginal Ascii 20 0000:00:00 00:00:00
sany0073.jpg >> Binary file (standard input) matches
sany0074.jpg >> Binary file (standard input) matches
Uma segunda vez (o script conseguiu grep como esperado):
$ for f in *.jpg; do echo -n $f " >> " ; /usr/bin/exiv2 -P E pr $f | grep 'Exif.Photo.DateTimeOriginal'; done
sany0070.jpg >> Exif.Photo.DateTimeOriginal Ascii 20 0000:00:00 00:00:00
sany0071.jpg >> Exif.Photo.DateTimeOriginal Ascii 20 0000:00:00 00:00:00
sany0072.jpg >> Exif.Photo.DateTimeOriginal Ascii 20 0000:00:00 00:00:00
sany0073.jpg >> Exif.Photo.DateTimeOriginal Ascii 20 0000:00:00 00:00:00
sany0074.jpg >> Exif.Photo.DateTimeOriginal Ascii 20 0000:00:00 00:00:00
Uma terceira vez (não é possível usar a informação solicitada, embora tenha sido diferente da primeira tentativa:
$ for f in *.jpg; do echo -n $f " >> " ; /usr/bin/exiv2 -P E pr $f | grep 'Exif.Photo.DateTimeOriginal'; done
sany0070.jpg >> Exif.Photo.DateTimeOriginal Ascii 20 0000:00:00 00:00:00
sany0071.jpg >> Exif.Photo.DateTimeOriginal Ascii 20 0000:00:00 00:00:00
sany0072.jpg >> Binary file (standard input) matches
sany0073.jpg >> Exif.Photo.DateTimeOriginal Ascii 20 0000:00:00 00:00:00
sany0074.jpg >> Exif.Photo.DateTimeOriginal Ascii 20 0000:00:00 00:00:00
E assim por diante.
Estou executando o Slackware64 14.2 Linux com:
$ grep -V
grep (GNU grep) 2.25
$ exiv2 --version
exiv2 0.25 001900 (64 bit build)
Gostaria de saber por que isso está acontecendo e como lidar com isso.
Edit: Isso acontece com este conjunto de arquivos (cinco no exemplo como uma amostra do 76 do diretório original), mas não aconteceu com centenas de outros em dezenas de diretórios que eu apliquei sem problemas. / p>