comm命令的用法

求文件的交集、补集、差集
文件需要已排序!如果是比较字符串,建议也把-n加上!
comm的执行顺序:
两个指针,一个指向a的第一行pa,一个指向b的第一行pb。
比如,查找a中有的b中没有的,先是比较*pa和*pb,如果相同则pa++,pb++,如果不同则输出该行(其实也没有输出,而是会往下找,找到排序值大于该值的值后才输出),同时pa++,pb不变。继续这个过程。

[root@localhost output]# cat a
a
b
[root@localhost output]# cat b
b
a
[root@localhost output]# comm a b
a
		b
	a


[db2inst1@localhost ~]$ cat a.txt 
apple
gold
orange
silver
steel
[db2inst1@localhost ~]$ cat b.txt 
carrot
cookies
gold
orange
[db2inst1@localhost ~]$ comm a.txt b.txt 	#第一列为只在A的行,第二列为只在B的行,第三列为交集
apple
	carrot
	cookies
		gold
		orange
silver
steel
[db2inst1@localhost ~]$ comm a.txt b.txt -1 -2	#不输出第一第二列
gold
orange

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*