3中计算文件补集形式

3中计算文件补集方式

博客主页:http://blog.csdn.net/minna_d

要求:求两个文件差集、并集、补集

实验数据

[root@jjy ~/q/data/tmp_data]# cat 1
1
2
3
4
5
6
[root@jjy ~/q/data/tmp_data]# cat 2
3
4
5
8
9


第 一中最简单的实现:

利用comm,默认以\t分割,利用AWK很好分割

[root@jjy ~/q/data/tmp_data]# comm 1 2
1
2
		3
		4
		5
6
	8
	9

第二种利用sort uniqe组合实现

主要利用uniq -u 唯一行,-d 重复行的特性

[root@jjy ~/q/data/tmp_data]# cat 1 1 2 | sort | uniq -d
1
2
3
4
5
6
[root@jjy ~/q/data/tmp_data]# cat 1 1 2 | sort | uniq -u
8
9

第三种利用awk 实现

主要利用awk的内置变量NR 和FNR ,

NR代表当前输出行数,FNR代表当前输出的文件行数

[root@jjy ~/q/data/tmp_data]# awk '{if (NR==FNR){a[$0]=$0} else { if ($0 in a) {print $0}}}' 1 2
3
4
5