Найти общие линии между различными файлами / списками, используя bash - PullRequest
1 голос
/ 12 января 2012

У меня есть несколько списков, как показано ниже:

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

list2

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

Мой вопрос: как найти строки, используемые всеми тремя списками, используя bash? (как здесь легко заметить, что chr10 NM_000235 является общим для всех трех) ТНХ

1 Ответ

1 голос
/ 12 января 2012

используйте команду comm

$ 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» пуст, то сравнивать с третьим файлом не нужно). Затем сравните temp с третьим файлом.

Я также предоставляю ссылку на короткий учебник здесь .

...