假设我有一个参考列表,比如说file1.txt
,其中包含:
a
b
c
d
我有file2.txt
,数据文件如下:
a 1 2 3
b 5 6 7
d 6 7 8
e 7 8 9
和需要的输出output.txt
:
a 1 2 3
b 5 6 7
d 6 7 8
我想将 IDfile1.txt
与第一列匹配file2.txt
并将整行(从 行file2.txt
)打印到output.txt
这是join
为:
$ join f1 f2
a 1 2 3
b 5 6 7
d 6 7 8
如果您首先需要sort
您的文件,那么:
join <(sort f1) <(sort f2)
awk 'FNR==NR{a[$1];next}($1 in a)' file1.txt file2.txt
同样在 perl 中:
perl -F -lane '$h{$F[0]}++;if($h{$F[0]}>=2){print $_;}' file1 file2
注意:如果第一个文件具有唯一 ID,则上述 perl 命令将起作用