微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

bash – 如果给出EXIF数据,我该如何重命名照片?

假设我有一堆照片,都有正确的EXIF信息,照片是随机命名的(因为我遇到了问题).我有一个名为jhead的程序,它给出了以下输出

$jhead IMG_9563.JPG

File name    : IMG_9563.JPG
File size    : 638908 bytes
File date    : 2011:02:03 20:25:09
Camera make  : Canon
Camera model : Canon PowerShot SX210 IS
Date/Time    : 2011:02:03 20:20:24
Resolution   : 1500 x 2000
Flash used   : Yes (manual)
Focal length :  5.0mm  (35mm equivalent: 29mm)
CCD width    : 6.17mm
Exposure time: 0.0080 s  (1/125)
Aperture     : f/3.1
Focus dist.  : 0.29m
ISO equiv.   : 125
Exposure bias: -1.67
Whitebalance : Manual
Light Source : Daylight
Metering Mode: pattern
Exposure Mode: Manual

现在我需要以下一种格式重命名文件夹中的所有照片:

001.JPG
002.JPG
003.JPG
...

其中次要编号是较旧的图像,最大值是较新的图像.

我的脚本不是很好,所以我在寻求帮助.

我认为bash脚本就足够了,但是如果你感觉更舒服,你可以写一个python脚本.

我想的是:

$mv IMG_9563.JPG `jhead IMG_9563.JPG | grep date`

但我不知道如何一次为所有文件做到这一点.

解决方法:

你可以使用for循环来获取所有文件(在shell / shell脚本中):

for i in *.JPG; do
  j=`jhead "$i" | grep date | sed 's/^File date[^:]\+: \(.\+\)$/\1/'`.jpg
  echo mv -i "$i" "$j"
done

这只是一个非常基本的概述.验证一切都按预期工作时删除回显.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐