如何根据文件名更新 exif DateTimeOriginal?
How do I update exif DateTimeOriginal based on filename?
我想使用 Google 张照片分享 10K 张照片。这些图像是
已扫描,因此他们没有按时间顺序排列的正确 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 "bad substitution error"
如有任何帮助,我们将不胜感激。
可能有更好的方法,但这个有效:
#!/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
尝试在临时目录中 COPY 文件!
您已经接近原件了,但正如@Grinnz 所说,您需要使用单引号。此外,您想要当年的前 4 个数字,但您只获取了 3 个。
所以尝试:
exiftool '-DateTimeOriginal<${filename;$_=substr($_,0,4)} 01:01 12:00:00' FileOrDir
exiftool 的启动时间是其最大的性能损失,因此您会发现这比遍历每个文件快得多(请参阅 exiftool Common Mistake #3)。
此命令创建备份文件。添加 -overwrite_original
以禁止创建备份文件。添加 -r
以递归到子目录。
我想使用 Google 张照片分享 10K 张照片。这些图像是 已扫描,因此他们没有按时间顺序排列的正确 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 "bad substitution error"
如有任何帮助,我们将不胜感激。
可能有更好的方法,但这个有效:
#!/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
尝试在临时目录中 COPY 文件!
您已经接近原件了,但正如@Grinnz 所说,您需要使用单引号。此外,您想要当年的前 4 个数字,但您只获取了 3 个。
所以尝试:
exiftool '-DateTimeOriginal<${filename;$_=substr($_,0,4)} 01:01 12:00:00' FileOrDir
exiftool 的启动时间是其最大的性能损失,因此您会发现这比遍历每个文件快得多(请参阅 exiftool Common Mistake #3)。
此命令创建备份文件。添加 -overwrite_original
以禁止创建备份文件。添加 -r
以递归到子目录。