2010-01-18 71 views
1

對不起,但問題不容易壓縮成一個句子...合併列表問題

我有兩個重疊羣列表(list1和list2)。它們大多含有獨特的重疊羣,但有一些重疊。我想比較list1和list2,然後創建一個列表3,其中包含list1中的所有重疊羣減去也存在於list2中的所有重疊羣。使用簡單的cat/paste/grep/sort/uniq類批處理命令可以實現嗎?

謝謝!

回答

1

你可以sortuniq做到這一點:

sort list1 list2 list2 | uniq -u 

在list2中的任何線將出現在排序的輸出中至少兩次,因此將被uniq過濾器過濾

+0

謝謝! 其他人也可能工作,但這對我的數據集做了訣竅。 :) – 2010-01-18 13:56:07

0

嘗試comm -23

例子(第一個列表:編號1-10,第二個列表包含數字5-8)

comm -23 <(seq 1 10) <(seq 5 8)

的假設是,你的列表1和列表2排序

0

你沒有表現出任何的樣品關於你的名單的數據,所以我做了。假設

$ cat file1 
11 
12 
5 
13 
7 
14 
15 

$ cat file2 
6 
7 
8 
5 
4 
1 

$ awk 'FNR==NR { a[$0]; next } (! ($0 in a)) ' file2 file1 
11 
12 
13 
14 
15 

如果不是你想要的,你的名單範例和所需輸出

0

我也是在生物信息學和基因組學工作的描述更加清楚。

如果你真的想得到uniq contig序列,你最好使用python或perl來使這個問題重疊/ mismacth線程!

來自中國深圳BGI的GentleYang :)