A.txt
1111
1234
2222
3333
B.txt
1111
1234
3333
4444
有两个方法,一个是comm命令,一个是grep命令
comm命令
comm(选项)(参数)
选项
-1:不显示在第一个文件中出现的内容 ;
-2:不显示在第二个文件中出现的内容;
-3:不显示同时在两个文件中都出现的内容。
参数
文件1:指定要比较的第一个有序文件;
文件2:指定要比较的第二个有序文件。
comm命令默认输出为三列,第一列为是A-B(在A中但不在B中),第二列B-A,第三列为A交B。-1代表不显示第一列,依次类推。
交集
comm -12 A.txt B.txt
或者
cat a b | sort | uniq -d > c # c is a intersect b 交集
如果A B 无序,可以使用下面命令
comm <(sort a.txt|uniq ) <(sort b.txt|uniq )
差集
A-B
comm -23 A.txt B.txt
grep命令
以A.txt为范式样本,grep查找符合该范式条件的文本内容
grep -F -f A.txt B.txt | sort | uniq
B-A
grep -F -v -f A.txt B.txt | sort | uniq