在Linux平台常用的文本比较工具是diff或者vimdiff,但是看起来有点难懂,推荐另一个方法。

   通过sort/uniq获取文件内容的交集、合集和不同之处:假设有a、b两个文本文件,文件本身已经去除了重复内容。下面是效率最高的方法,可以处理任何 体积的文件,甚至几个G的文件。(Sort对内存没有要求,但也许你需要用 -T 参数。)可以试着比较一下,你可以看看如果用Java来处理磁盘上文件的合并,需要用多少行代码。

cat a.txt b.txt | sort | uniq > c.txt       # c 是a和b的合集
cat a.txt b.txt | sort | uniq -d > c.txt    # c 是a和b的交集
cat a.txt b.txt | sort | uniq -u > c.txt    # c 是a和b的不同

   这个在脚本中应用起来比较方便。