在处理以行为单位的数据时,经常需要求两个文件的内容交集、并集、差集,下面总结一下相关的操作。
1、交集
$ sort a.txt b.txt | uniq -d
解释:将两个文件进行排序,uniq使得两个文件中的内容为唯一的,使用-d输出两个文件中次数大于1的内容,即是得到交集
2、并集
$ sort a.txt b.txt | uniq
解释:将两个文件进行排序,uniq使得两个文件中的内容为唯一的,即可得到两个文件的并集。
3、差集
a.txt-b.txt:
$ sort a.txt b.txt b.txt | uniq -u
解释:将两个文件排序,最后输出a.txt b.txt b.txt文件中只出现过一次的内容,因为有两个b.txt所以只会输出只在a.txt出现过一次的内容(b.txt的内容至少出现两次),即是a.txt-b.txt差集。
b.txt - a.txt:
$ sort b.txt a.txt a.txt | uniq -u
解释:上面同理
文章评论