2013-05-14 2 views
-3

У меня есть два файлаСоздать новый файл на основе соответствия между двумя файлами

Первый файл в этом формате. Каждая строка начинается с уникальным идентификатором (в данном случае P22465)

P22465 DB DB; EC.31.1.1; the annexin (annexin) group. 

Второго файл находится в этой format.Each строка начинается с (некоторым количеством) @ENTREZGENE

[email protected]|[email protected]|[email protected]|ANXA6:ANXA6|67 kDa calelectrin 

[email protected]|[email protected]|[email protected]|ACAA1:ACAA1|EC 2.3.1.16 

Выход должен быть

[email protected]|[email protected]|[email protected]|ACAA1:ACAA1|EC 2.3.1.16 

Он должен соответствовать строке, содержащей уникальный идентификатор (P22465) во втором файле, и скопировать всю строку в новый файл.

+0

Прохладный. Ницца. И что? :) – jm666

+0

Отличная постановка задачи. Что за вопрос? –

+0

Скопируйте всю строку файла? PLS добавить файл2 и вывести – Kent

ответ

1

Использование bash:

fgrep -f <(awk '{print $1}' file1) file2 

Этот процесс использует замену (<(...)). Вы, наверное, могли бы также сделать это с:

awk '{print $1}' file1 | fgrep -f - file2 

Это говорит fgrep «читать строки, которые будут совпавшие со стандартного ввода» (-f -). Я не проверял, что это работает, но я ожидаю, что это так.

Вы можете использовать grep -F вместо fgrep (но Mac OS X имеет fgrep).

Смежные вопросы