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

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.


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"
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.