合并列表问题

时间:2010-01-18 13:25:56

标签: list command-line batch-file

对不好的标题感到抱歉,但问题并不容易压缩成一句......

我有两个重叠群列表(list1和list2)。它们主要包含独特的重叠群,但有一些重叠。我想比较list1和list2,然后创建一个list3,其中包含list1中的所有contigs减去list2中也存在的contigs。这可以通过简单的cat / paste / grep / sort / uniq类批处理命令来实现吗?

谢谢!

5 个答案:

答案 0 :(得分:1)

您可以使用sortuniq

执行此操作
sort list1 list2 list2 | uniq -u 

list2中的任何行在排序的输出中至少出现两次,因此将由uniq过滤器过滤

答案 1 :(得分:0)

看看Iesi.Collections库,请参阅Codeproject上的文章 http://www.codeproject.com/KB/recipes/sets.aspx#xx703510xx

答案 2 :(得分:0)

尝试comm -23

示例(第一个列表:数字1-10,第二个列表包含数字5-8)

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

假设您的list1和list2已排序

答案 3 :(得分: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

如果它不是您想要的,请使用您的列表和所需输出的示例更清楚地描述

答案 4 :(得分:0)

我也在生物信息学和基因组学工作。

如果您真的想获得uniq重叠群序列,最好使用python或perl来解决重叠/错误的线程问题!

来自中国深圳华大基因的GentleYang:)