我想使用Google相册共享1万张照片。这些图像是 扫描,因此它们没有正确的DateTimeOriginal按时间顺序排序。
我需要将DateTimeOriginal更新为YYYY:01:01 00:00:00,以允许我在Google相册中整理这些照片以进行共享 并有秩序感。我的理解是Google使用exif DateTimeOriginal进行排序。
我的照片命名约定:
1967年Smith G&J婚礼-3.jpg
1962年史密斯家庭聚会-87.jpeg
1990年史密斯50周年-16.jpeg
我尝试过:
exiftool "-datetimeoriginal < ${filename;$_=substr($_,0,3)} 01:01 12:00:00" DIR
但收到BASH“替换错误”
任何帮助将不胜感激。
答案 0 :(得分:3)
有可能是一个更好的方法,但这种作品:
#!/bin/bash
for f in *.jpg; do
year=$(grep -Eo "^\d+" <<< "$f")
echo File: $f, setting year:$year
exiftool "-datetimeoriginal=${year}01:01 12:00:00" "$f"
done
调试输出
File: 2013 Family Reunion.jpg, setting year:2013
1 image files updated
File: 2017 Some wedding.jpg, setting year:2017
1 image files updated
尝试复制在临时目录中的文件!
答案 1 :(得分:2)
您与原件很近,但是正如@Grinnz所说,您需要使用单引号。此外,您希望获得今年的前4个数字,但只获得3个。
所以尝试:
exiftool '-DateTimeOriginal<${filename;$_=substr($_,0,4)} 01:01 12:00:00' FileOrDir
exiftool的启动时间是其最大的性能影响,因此您会发现这比循环遍历每个文件要快得多(请参见exiftool Common Mistake #3)。
此命令创建备份文件。添加-overwrite_original
以禁止创建备份文件。添加-r
以递归到子目录中。