1

假设我有一个参考列表,比如说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

4

2 回答 2

7

这是join为:

$ join f1 f2
a 1 2 3
b 5 6 7
d 6 7 8

如果您首先需要sort您的文件,那么:

join <(sort f1) <(sort f2)
于 2012-12-06T10:20:27.827 回答
4
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 命令将起作用

于 2012-12-06T10:01:12.480 回答