文本文件的交集

comm命令可用于两个文件之间的比较,他有很多不错的选项可用来调整输出,以便我们执行交集,求差以及差集操作

概念

交集:打印出两个文件共有的行

求差:打印出指定文件所包含的且不相同的行

差集:打印出包含在文件A中,但是不包含在其他文件中的行

必须先排序

需要注意的是comm必须使用经过排序的文件

所以,我们先将两个测试文件排序后,另存为1.txt和2.txt

[root@mio-test temp]# sort 1 -o 1.txt

[root@mio-test temp]# sort 2 -o 2.txt

然后我们用comm来查看这两个文件

[root@mio-test temp]# comm 1.txt 2.txt
                2222
3333
        33333
333333
        4444
55666
6666
88888

第一列是只在1.txt中存在的行

第二列是只在2.txt中存在的行

第二列是在1.txt和2.txt都存在的行

只看1.txt存在,2.txt不存在的行

[root@mio-test temp]# comm 1.txt 2.txt -23
3333
333333
55666
6666
88888

同理,只看2.txt存在,1.txt不存在的行

[root@mio-test temp]# comm 1.txt 2.txt -13
33333
4444

再同理,只看1.txt和2.都存在的行

[root@mio-test temp]# comm 1.txt 2.txt -12
2222