我有两个文件夹-FolderA和FolderB-每个文件夹包含成千上万个文件,在扩展名前应命名为完全相同。一个文件夹包含扩展名为.jpg的文件,另一个包含.txt扩展名的文件。
我的目标是找到其中一个文件而不是另一个文件。因此,例如,如果FolderA包含:
foo.jpg
bar.jpg
baz.jpg
而FolderB包含:
foo.txt
baz.txt
qux.txt
该脚本应返回:
FolderA/bar.jpg
FolderB/qux.txt
bash如何通过输入两个单独的目录来创建这样的输出?我希望以某种方式修改diff
将提供Only in ...
输出的命令,但是在这种情况下,由于扩展名不同,因此diff
将输出所有文件
diff -rq FolderA FolderB
这可以满足您的要求,但是会在3列中报告结果-第一个目录特有的结果,第二个目录特有的结果,以及这两个目录共同的结果:
comm <(cd FolderA && printf "%s\n" *.jpg | sed 's/.jpg$//') <(cd FolderB && printf "%s\n" *.txt | sed 's/.txt$//')
样本输出
bar
baz
foo
qux
您可以使用以下命令禁止打印第3列:
comm -3 ...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句