Unix 基于文件1中单个列的公共值的文件2的子集行

Unix 基于文件1中单个列的公共值的文件2的子集行,unix,awk,grep,comm,Unix,Awk,Grep,Comm,我处理的是大型文件,我只想提取一列的值包含在另一个文件的列的值中的行 例如,在文件1中,我有10000行,看起来像这样: Chr13998356 T C Chr1401532 A G Chr14021851 A T 在文件2中(100000+行),我只需要第1列中的a值出现在文件1的第1列中的行。因此,对于文件2,我有: Chr1 401530 G G 60 0 60 11 Chr1 401531 A A 60 0 60 11 Ch

我处理的是大型文件,我只想提取一列的值包含在另一个文件的列的值中的行

例如,在文件1中,我有10000行,看起来像这样:

Chr13998356 T   C
Chr1401532  A   G
Chr14021851 A   T
在文件2中(100000+行),我只需要第1列中的a值出现在文件1的第1列中的行。因此,对于文件2,我有:

Chr1    401530  G   G   60  0   60  11
Chr1    401531  A   A   60  0   60  11
Chr1    401532  A   G   30  170 60  11
我想以第三个文件结束,其中包含:

Chr1    401532  A   G   30  170 60  11
此文件的行数可能介于几行到10000行之间

在R中,我会在data.table包中使用类似
df3的东西,这在R中也应该很快。
$ cat file1
Chr13998356 T   C
Chr1401532  A   G
Chr14021851 A   T

$ cat file2
Chr1    401530  G   G   60  0   60  11
Chr1    401531  A   A   60  0   60  11
Chr1    401532  A   G   30  170 60  11

$ awk 'NR==FNR{vals[$1];next} ($1$2) in vals' file1 file2
Chr1    401532  A   G   30  170 60  11