如何使用类似工具打印图像 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"