使用sort+uniq
直接举例子
file1的内容是
aaaa bbbb cccc
file2的内容时
aaaa bbbb dddd
求交集
cat file1 file2 | sort | uniq -d
求并集
cat file1 file2 | sort | uniq
求 file1 - file2差集 (前提是file1 file2 里面不包含重复的元素)
cat file1 file2 file2 | sort | uniq -u
使用grep
求交集
grep -f file1 file2
求差集 file2 - file1 (可以包含重复元素)
grep -f file1 -v file2
总结
一些复杂场景下使用grep会比较好一点,比如两个文件的内容不是简单的一列,而是多列的情况。但是使用sort+uniq的性能要比grep要快速很多。(sort+uniq的时间复杂度是mlogm,m为文件总行数;grep为m*n,m、n分别为两个文件的行数)。