首页 > 解决方案 > 将一个文件中第三列的值与另一个文件中的值进行比较

问题描述

我有两个文件。

文件 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 的第三列值不同的行。

标签: awk

解决方案


编辑:添加此解决方案作为 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

推荐阅读