比较大文本文件

时间:2014-05-07 06:44:57

标签: unix awk sed compare diff

我必须比较大文本文件以确定file1和file2之间的区别。每个文件都包含域名。文件大小:2GB。

Content sample:

domain1.com
domain2.com

我更愿意使用unix工具来获得结果。基本上我想输出file1中的所有行,这些行在file2中不存在。一般来说,我想要完成的是确定过期域列表。

提前致谢。

3 个答案:

答案 0 :(得分:1)

作为第一次剪辑,我会尝试以下内容:

comm -13 <( sort file1 ) <( sort file2 )

这将为您提供仅在file2中出现的行。你可能会惊讶地发现这实际上有多快,因为考虑单线班的努力程度是多少。

如果您经常这样做,最好保持文件排序,然后只需comm即可。如果您的文件包含许多重复项,您可以通过在排序后执行| uniq来节省一些时间。

答案 1 :(得分:0)

您可以尝试diff

diff file1 file2

答案 2 :(得分:-1)

使用grep,您可以指定一个文件来从(-f file1)读取模式,并通过-v取消输出,即打印不匹配:

grep -v -f file1 file2