如何使用md5sum命令找到唯一文件?

时间:2013-11-21 12:51:38

标签: unix

我正在使用Md5sum命令,我以二进制格式获取文件内容 我希望结果在文件中没有相同的内容 例如

 $ md5sum file1 file2 file3 file4

  c8675a129a538248bf9b0f8104c8e817  file1
  9d3df2c17bfa06c6558cfc9d2f72aa91  file2
  9d3df2c17bfa06c6558cfc9d2f72aa91  file3
  2e7261df11a2fcefee4674fc500aeb7f  file4

我希望输出在文件中不匹配 我需要file1和file2。

  c8675a129a538248bf9b0f8104c8e817  file1
  2e7261df11a2fcefee4674fc500aeb7f  file4

该文件内容与另一个文件中的文件内容不相同,只有我需要的文件

提前致谢

2 个答案:

答案 0 :(得分:2)

你可以说:

md5sum file1 file2 file3 file4 | uniq -u -w33

以获取唯一文件。

引用man uniq

   -u, --unique
          only print unique lines

编辑:您似乎在寻找其他选择。尝试

md5sum ... | sed ':a;$bb;N;/^\(.\).*\n\1[^\n]*$/ba;:b;s/^\(.\).*\n\1[^\n]*\n*//;ta;/./P;D'

答案 1 :(得分:1)

试试这个:BASH

find -type f -exec md5sum '{}' ';' | sort | uniq --all-repeated=separate -w 33 | cut -c 35-

<强>解释

查找所有文件,计算MD5SUM,通过比较MD5SUM查找重复项,打印名称

了解更多here