macOS - 选择并删除具有不同扩展名的非重复文件名

macOS - 选择并删除具有不同扩展名的非重复文件名

我是一名夜间摄影师。每天晚上我都会收集大约 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 unmatchedrm $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

相关内容