将两个文本文件与两列进行比较,在第一列中查找匹配项,在第三列文件中输出匹配项

时间:2015-05-04 01:58:00

标签: regex awk

我有两个文本文件。

file1.txt

AAA example1
BBB example2
CCC example3
DDD example4

FILE2.TXT

FFF example5
AAA example1
BBB example2
GGG example6

我想比较两个文件的第一列,如果匹配,则将整行从file1.txt输出到file3.txt,如下所示:

file3.txt

AAA example1
BBB example2

1 个答案:

答案 0 :(得分:0)

将第二个文件的第一列的所有匹配项找到第一个文件的第一列,打印第一个文件中匹配的列,然后将其添加到file3.txt

awk 'NR==FNR{a[$1];next}$1 in a' file2.txt file1.txt >> file3.txt

说明:

NRFNR内置awk个变量,表示总输入记录数和当前文件中的记录数。

NR==FNR # when in the first file (file2)
{
    a[$1] # build associative array on the first column of file2
    next  # process next line
}
($1 in a) # if value in first column of the second file (file1) is in the array, get the whole line

>> file3.txt管道awk打印到file3的内容。