我是一名夜间摄影师。每天晚上我都会收集大约 800 个 RAW 文件 + 800 个 JPG 文件。我浏览图片,选择 JPG 文件,也就是说,我删除所有不需要的图片,然后用灰色标签标记我的 JPG 文件,并将它们传输到 RAW 文件夹中。
在最后阶段,我将原始的 800 个 RAW 文件 + 大约 200 个 JPG 标记文件放在同一个文件夹中。现在我有 200 个 JPG 文件,与 800 个 RAW 文件名中的 200 个完全匹配。
我按名称对该文件夹中的所有文件进行排序,最后手动删除所有非重复文件。灰色标签在此过程中对我有所帮助:我将每个 JPG 文件(带有灰色标签)及其对应/匹配的 RAW 文件(与 JPG 文件同名.JPG
但带有.NEF
扩展名)放在 JPG 正下方。
这篇文章底部的截图展示了这个最后阶段。
我如何才能自动化这部分工作流程?有没有我可以运行的简单脚本?
答案1
您可以使用以下方法自动执行最后一步终端。
您可以.NEF
使用以下命令查看目录中的所有文件寻找.例如从目录内部。
find *.NEF -type f
然后针对每个 NEF 检查是否对应 JPG没有通过使用而存在基名删除.NEF
扩展名,然后将其替换为.JPG
。这将打印没有匹配 JPG 的 NEF 文件。
find *.NEF -type f -exec sh -c 'for f do [ ! -f $(basename $f .NEF).JPG ] && echo $f unmatched; done' find-sh {} \;
如果看起来没问题,则替换echo $f unmatched
为rm $f
删除文件而不是打印名称。
find *.NEF -type f -exec sh -c 'for f do [ ! -f $(basename $f .NEF).JPG ] && rm $f; done' find-sh {} \;
例如:
A1398% ls
1.NEF 2.JPG 2.NEF 3.NEF 4.JPG 4.NEF 5.NEF
A1398% find *.NEF -type f -exec sh -c 'for f do [ ! -f $(basename $f .NEF).JPG ] && rm $f; done' find-sh {} \;
A1398% ls
2.JPG 2.NEF 4.JPG 4.NEF