ger*_*los 7 video script bash exif rename
我正在处理一大群无组织的媒体文件,这些文件是使用几种不同的相机和摄像机捕获的,我想在 bash 脚本中使用 exiftool 来重命名每个文件及其创建日期和时间、制造商和型号。
使用此命令,图像将根据需要重命名:
exiftool -m -P '-filename<${DateTimeOriginal}_${Make}_${Model}.%e' myfile.jpg
Run Code Online (Sandbox Code Playgroud)
我已经知道我可以使用 -d FMT 选项格式化日期和时间,但为了清楚起见我省略了它。
这是我在使用 DSLR“*.mov”视频时面临的问题:
有谁知道如何“强制”exiftool 使用原始的 .mov 扩展名?
有没有办法告诉 exiftool 检查 exif 标签是否存在?如果第一个标签不存在,则使用另一个标签?
我试过类似的东西
if [ -n `exiftool -m -p '$DateTime' filename]
then
...
Run Code Online (Sandbox Code Playgroud)
但是 exiftool 给我一个错误,所以空字符串检查总是失败。任何提示?
感谢 exiftool 的开发者 Phil Harvey 的反馈,他为我的问题找到了一个非常简单的解决方案,它适用于 exiftool 9.30。
菲尔在这里说(http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,5079.msg24483.html#msg24483):
最后一个有效分配取代其他分配。
因此,我们只需一个命令即可完成所有操作。这是最终的代码:
#!/bin/bash
exiftool -P -d '%Y-%m-%d %H.%M.%S' \
'-filename<${CreateDate}_${Model;}.%e' \
'-filename<${DateTimeOriginal}_${Make;}.%e' \
'-filename<${DateTimeOriginal}_${Make;}_${Model;}.%e' \
$@
Run Code Online (Sandbox Code Playgroud)
分号是解决上述缺失扩展问题的一种方法(实际上,这是因为我的模型标签中的尾随空值)。
这种方法的一个好处是我们没有使用该-m选项,因此我们不会弄乱例如没有 exif 标签的 *.mov 文件,就像可以从网上下载的大多数视频一样(他们只是被忽略)。