
複数のjpg
写真の写真を撮った元の日付を抽出するための(簡素化された)スクリプトがあります(0000:00:00と異なる場合は関係ありません)。
for f in *.jpg;
do
echo -n $f " >> " ;
/usr/bin/exiv2 -P E pr $f | grep 'Exif.Photo.DateTimeOriginal';
done
ただし、パイプラインは写真のメタデータにある情報を検索するexiv2
場合もあれば、そうでない場合もあります。grep
ファイルリストテストセットは次のとおりです。
$ ls
sany0070.jpg sany0071.jpg sany0072.jpg sany0073.jpg sany0074.jpg
私が得たのは、次の一貫性のない結果です。
$ 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
2番目(スクリプトは期待どおりにgrepできます):
$ 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
3回目の試み(最初の試みとは異なりますが、要求された情報が見つかりませんでした:
$ 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
など。
私はSlackware64 14.2 Linuxを実行しています。
$ grep -V
grep (GNU grep) 2.25
$ exiv2 --version
exiv2 0.25 001900 (64 bit build)
なぜこれが起こるのか、どのように対処すべきかを知りたいです。
編集:このファイルセット(元のディレクトリにある76ファイルのサンプルである例の5ファイル)で発生しますが、それを適用した数十のディレクトリにある他の何百ものファイルでは問題は発生しません。
答え1
Louis、あなたの最後の編集はすべてを説明します。コードが破損しているのではなく、コードが破損しています。一部の特定のJPEGファイルのメタデータ。この問題をどのように解決するかはわかりませんが、少なくともjpegファイル自体で答えを見つける必要があることをお伝えします。私の考えでは、GimpとImageMagickを使ってこれらの問題を解決することができます。ただし、これらのアプリケーションを使用してメタデータを変更する方法を理解するには、ドキュメントを読む必要があります。お役に立てば幸いです。