2012-12-06 25 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