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

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

如何使用类似工具打印图像 Exif 日期exiv2

我的目标是将图像年份和月份写入单独的变量中。我真的必须用正则表达式解析输出吗?还是有其他选择:

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

答案1

您可以使用该-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

答案2

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"

相关内容