Cetak nilai data gambar Exif tertentu dengan exiv2

8

Bagaimana cara mencetak gambar Exif date dengan alat seperti exiv2?

Tujuan saya adalah menulis gambar tahun dan bulan ke dalam variabel yang terpisah. Apakah saya benar-benar harus mengurai output dengan regex atau apakah ada alternatif untuk sesuatu seperti ini:

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

Jawaban:

7

Anda dapat menggunakan -gflag untuk hanya menampilkan properti yang Anda minati, dan -Pvuntuk mencetak nilai tanpa ada fluff di sekitarnya. Hasilnya mudah diurai.

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

Hal ini juga dapat membantu untuk mengubah tanggal file untuk mencocokkan tanggal image: exiv2 -T DSC_01234.NEF.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Itu sempurna. Saya mencoba untuk meningkatkan pengetahuan bash saya saat menulis skrip yang membuat folder berbasis tanggal untuk gambar dan mengganti nama file dengan tepat seperti yang Anda sebutkan.
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
sumber