2012-12-06 26 views
1

假设我有一个参考列表,说file1.txt,它包含:匹配列表中,提取对应的线形成文件2

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 

我想在file1.txt匹配的ID与file2.txt第一列和打印整个线(从file2.txt行)转换成output.txt

回答

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 

注:上述perl的命令将工作提供的第一个文件有唯一的ID

7

这是什么join是专为:

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

如果您需要sort文件第一则:

​​3210