如何找到两个目录中内容不同的文件名

9 浏览
0 Comments

如何找到两个目录中内容不同的文件名

我有两个目录,dir1 和 dir2。\n在 dir1 中的文件有:abc.txt,abd.txt,abe.txt,abf.txt\n在 dir2 中的文件有:abi.txt,abd.txt,abe.txt,abg.txt,abh.txt\nabd.txt 和 abe.txt 在两个目录中都存在,且内容不同。如何编写一个脚本只返回这两个文件名?\n我不想要在 dir1 或 dir2 中缺失的文件。我只需要文件名相同但内容不同的文件名。\n提前谢谢。

0
0 Comments

如何找到两个目录中内容不同的文件名?

有一种间接的方法是使用diff命令:

diff -r dir1 dir2 | grep "diff -r"

diff -r dir1 dir2将显示具有相同文件名的文件的差异,文件名为diff -r dir1/file dir2/file。其余的文件将以Only作为前缀列出。

希望有人能提供一个更简单的解决方案:-)

谢谢..您的命令显示:diff -r dir1/abd.txt dir2/abd.txt和diff -r dir1/abe.txt dir2/abe.txt,这是可以的。但是有没有办法只获取文件名?

您可以使用cut命令对结果进行管道操作。diff -r dir1 dir2 | grep "diff -r" | cut -d " " -f3 | xargs basename。这应该有所帮助。

diff -r dir1 dir2 | grep "diff -r" | cut -d " " -f3 | xargs basename -a是正确的方法。再次感谢。

0