显示b中不包含a的内容
awk 'ARGIND==1 {a[$0]} ARGIND>1&&!($0 in a) {print $0}' a b
ARGIND==1 #文件索引号,1表示第一个文件
!($0 in a) #每取一行都和数组a中保存的值比较,看该行在a中是否存在,然后再取反
[root@localhost ~]# cat aa
11 aa bb cc
11 mm nn dd
11 aa cc nn
22 bb cc dd
22 cc aa ff
33 aa cc dd
[root@localhost ~]# cat cc
a b c 0 11
e f g 1 11
1 4 3 2 11
a 5 4 0 22
a b c 9 22
a m l o 33
awk 'ARGIND==1 {a[$1]=$0} ARGIND==2{print $0,a[$5]}' aa cc
ARGIND==1 {a[$1]=$0} #将文件1中每行都保存在以第一列为下标的数组中
ARGIND==2{print $0,a[$5]} #文件2中,先打印一行,然后在a数组中找到以文件2中第5列为下标的值并打印。
awk 'ARGIND==1 {a[$0]} ARGIND>1&&!($0 in a) {print $0}' a b
ARGIND==1 #文件索引号,1表示第一个文件
!($0 in a) #每取一行都和数组a中保存的值比较,看该行在a中是否存在,然后再取反
[root@localhost ~]# cat aa
11 aa bb cc
11 mm nn dd
11 aa cc nn
22 bb cc dd
22 cc aa ff
33 aa cc dd
[root@localhost ~]# cat cc
a b c 0 11
e f g 1 11
1 4 3 2 11
a 5 4 0 22
a b c 9 22
a m l o 33
awk 'ARGIND==1 {a[$1]=$0} ARGIND==2{print $0,a[$5]}' aa cc
ARGIND==1 {a[$1]=$0} #将文件1中每行都保存在以第一列为下标的数组中
ARGIND==2{print $0,a[$5]} #文件2中,先打印一行,然后在a数组中找到以文件2中第5列为下标的值并打印。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27181165/viewspace-1156863/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27181165/viewspace-1156863/