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