我们在使用Linux时经常需要在两个文本文件中取重复的行或只取不重复的,也就是取交集或并集。我们可以使用sort和uniq命令来处理:
利用现存两个文件,生成一个新的文件
1. 取出两个文件的并集(重复的行只保留一份)
2. 取出两个文件的交集(只留下同时存在于两个文件中的文件)
3. 删除交集,留下其他的行
1. cat file1 file2 | sort | uniq
2. cat file1 file2 | sort | uniq -d
3. cat file1 file2 | sort | uniq -u
例如:文件a有三行:1,2,3;文件b有4行2,3,4,5;
那么输入cat a b|sort之后,生成的文件有7行:1,2,2,3,3,4,5;
接下来输入cat a b|sort|uniq -d取交集,生成的文件有两行:2,3;
输入 cat a b|sort|uniq -u取去除交集后的并集,生成:1,4,5;