比较列

时间:2013-04-04 17:15:02

标签: unix awk

我有两个文件:

文件1

1 
2 
3
4
5

file2的

a     0     1    h    f  
b     0     3    h    f
c     0     8    h    f
d     0     5    h    f

我想将file1与file2的column3进行比较,然后像这样打印整行file2

a     0     1     h    f
b     0     3     h    f 
d     0     5     h    f

我尝试使用awk,但我正在打印column3:

awk 'NR == FNR {f2[$3]=$1; next} $1 in f2{print f2[$1],$1}' file2 file1

如何从file2打印整行?

1 个答案:

答案 0 :(得分:3)

如果先给file1

,会容易得多
$ awk 'NR==FNR{a[$1];next}$3 in a' file1 file2
a     0     1    h    f
b     0     3    h    f
d     0     5    h    f

这样,如果字段3中的值位于file2,则可以在file1中轻松打印整行。 awk中的默认值为{print $0},因此可以从$3 in a{print $0}中省略。