uniq -u 取出只出现过一次的元素,用来求差集
uniq -c group by
uniq -d 取出出现次数大于等于2的元素,用来求交集
sort 1 2 和cat 1 2 本质是一样的,只不过sort排序了
所以求交集并集差集的关键不是在sort, 而是在uniq后面的选项
如果单纯只有uniq, 就是单纯的去重,其实就是取并集
所以sort a b|uniq 这个命令表示的含义有
1.对两个文件排序并去重,等同cat a b|sort -u
特别注意想对文件整体去重一定要先排序,uniq只能对相邻重复元素去重
2.取两个文件的并集
想起之前遇到过的几个面试题
1.在一份日志中统计出所有包含error的行中出现的ip, 统计他们出现的次数,并倒序排序,找出出现频次最高的三个ip
2.有a b c三个文件,求在a中存在但在b c中不存在的行
分析:b c中不存在,就要将b c中元素翻倍,然后统计只出现过一次的行,因为a中行没有翻倍过,所以a中特有的行一定会只出现一次
sort a b b c c| uniq -u