比较一个文件中第三列中的值与另一个文件中的值

时间:2018-07-16 17:12:50

标签: awk

我有两个文件。

文件1具有以下格式:

 f  55 SE 0 0 0
 re 13 SE 0 0 0

文件2具有以下格式:

fe 10  f
fe 02  h
fe 02  re

我需要首先比较文件,以查看文件2的第三列值是否出现在文件1的第一列中。如果存在,我需要整行,其中包含两个文件中都存在的值。要打印到输出文件的文件1。如示例所示,文件2的第三列中的某些值在文件1的第一列中不存在。我尝试使用awk,但老实说我是编程的新手,不确定要怎么做。

我的预期输出如下:

f 55 SE 0 0 0
re 02 SE 0 0 0

它的格式应与文件1相同,它只是过滤掉第一列值与文件2的第三列值不同的行。

1 个答案:

答案 0 :(得分:1)

编辑: :将此解决方案作为OP添加,现在已添加了预期的输出。

awk 'FNR==NR{a[$3]; next} $1 in a' File2 File1

由于您尚未发布示例输出,因此无法对其进行测试,请您尝试以下操作。

awk 'FNR==NR{a[$3]=$1 OFS $2;next} ($1 in a){print $0,a[$1]}' Input_file2  Input_file1