AWK;通过file1搜索file2

时间:2013-10-26 20:18:59

标签: bash awk

我搜索了高低,但找不到awk的确切代码。

我有2个文件。 文件1(单列):

1407859648
1639172851
1427051689
1023011285
1437152683
1508869405
1790775963
1932373552

文件2(三列):

1790775963,1932373552,65
1639206006,1437337425,15
1265418669,1477541563,145
1053424648,1316944317,182
1184611535,1821014457,26
1003906082,1134327133,152
1376530121,1841236684,168
1316921570,1962555771,23
1396962627,1184732489,87
1194958421,1255333456,113
1538156732,1336215482,62

文件1和2的记录数不等。 当File2中的Col1和Col2与File1中的Col1匹配时,我想从文件2打印记录。 在此示例中,输出应为:

1790775963,1932373552,65

谢谢!

A

1 个答案:

答案 0 :(得分:2)

请尝试以下操作:

awk -F',' 'NR==FNR {arr[$1]++; next} (($1 in arr) && ($2 in arr)) {print $0}' file1 file2

输出:

1790775963,1932373552,65

修改

sudo_O

建议的更简洁
awk -F, 'NR==FNR{a[$0];next}($1 in a)&&($2 in a)' file1 file2