使用exiv2打印特定的Exif图像数据值


8

如何使用exiv2之类的工具打印图像Exif日期?

我的目标是将图像的年和月写到单独的变量中。我是否真的必须用正则表达式解析输出,还是有类似这样的替代方法:

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

Answers:


7

您可以使用该-g标志仅输出您感兴趣的属性,并-Pv打印该值而不会产生任何周围的绒毛。结果很容易解析。

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

更改文件日期以匹配图像日期也可能会有所帮助exiv2 -T DSC_01234.NEF


那很完美。我试图在编写脚本时提高我的bash知识,该脚本为图像创建基于日期的文件夹,并按照您提到的方式适当地重命名文件。
装置

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"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.