2012-01-11 64 views
1

不同的文件/列表之間共享行我有幾個列表如下圖所示:查找使用bash

LIST1

chr10 NM_000141 
chr10 NM_000188 
chr10 NM_000235 
chr10 NM_000278 
chr10 NM_000281 
chr10 NM_000314 
chr10 NM_000375 
chr10 NM_000392 
chr10 NM_000399 
chr10 NM_000417 

列表2

chr10 NM_000235 
chr10 NM_000278 
chr10 NM_000281 
chr10 NM_000314 
chr10 NM_000392 
chr10 NM_000399 
chr10 NM_000609 
chr10 NM_000681 
chr10 NM_000684 
chr10 NM_000698 

項目list3

chr10 NM_000235 
chr10 NM_000188 
chr10 NM_000278 
chr10 NM_000314 
chr10 NM_000399 
chr10 NM_000609 
chr10 NM_000684 
chr10 NM_000818 
chr10 NM_000872 
chr10 NM_000917 

我的問題是,如何找到共享的線b y所有3個使用bash的列表? (喜歡這裏容易觀察到chr10 NM_000235是由所有三個共享) THX

回答

1

使用通訊命令

$ comm /path/to/file1/ /path/to/file2 
$ comm -1 /path/to/file1/ /path/to/file2 
$ comm -2 /path/to/file1/ /path/to/file2 
$ comm -3 /path/to/file1/ /path/to/file2 

其中

-1 : suppress lines unique to FILE1 
-2 : suppress lines unique to FILE2 
-3 : suppress lines that appear in both files 

第一比較兩個文件並保存結果在「溫度」。 (如果「temp」爲空,則不需要與第三個文件進行比較)。然後比較temp和第三個文件。

我還提供了一個鏈接到一個簡短的教程here