如何检测具有相同名称但不同扩展名的文件?

Modified on: Sun, 10 Jun 2018 03:41:23 +0800

我有一个目录,其文件的扩展名为.JPG或.NEF,我想删除目录中不存在X.JPG格式的X.NEF格式的文件。 (这里的X可以是任何字符串。)除了手工,我不知道如何做到这一点。

更一般的情况是,当您想要查找目录B中存在的目录A中的所有文件时。 (第一个问题可以使用mmv转换为第二个问题。)

作者:,Reza

最佳答案

您可以使用shell的${var%ext}参数替换功能在每个文件的基础上删除原始扩展名:来说明

touch file{1..6}.NEF file{1,2,4,6}.JPG

然后

* .NEF中的nef的

for nef in *.NEF; do [[ -f "${nef%.NEF}.JPG" ]] || echo rm -- "$nef"; done

结果

rm -- file3.NEF
rm -- file5.NEF

说明:

第一个命令只创建6个.NEF文件编号file1.NEFfile6.NEF和相应的.JPG 3个文件,即只有一些空文件来测试第二个命令。


相关问答

添加新评论