Шаблон поиска awk в одном файле сравнивается с другим файлом и печатает столбцы обоих файлов - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь сравнить второй столбец файла 1 и найти этот шаблон во втором столбце файла 2, чтобы получить вывод с идентификатором файла 1 в столбце 1 и распечатать столбец 2 файла 2 Я предполагаю, что в моих файлах 1 и 2 есть более одной строки с одинаковым идентификатором. Может ли awk сделать это? Или другой инструмент? Спасибо за помощь!

файл 1

TRINITY_DN2107 cl14615
TRINITY_DN2107 cl10509
TRINITY_DN2107 cl01287

файл 2

cl14615 pfam00932
cl14615 pfam08214
cl10509 pfam00651
cl01287 pfam13027
cl01287 pfam13340

желаемый файл

TRINITY_DN2107 pfam00932
TRINITY_DN2107 pfam08214
TRINITY_DN2107 pfam00651
TRINITY_DN2107 pfam13027
TRINITY_DN2107 pfam13340

1 Ответ

0 голосов
/ 28 апреля 2020

Это должно работать:

awk -v f=file_1 '
    BEGIN{while (getline < f) x[$2]=$1}
    {print x[$1], $2}' file_2

Однако я отмечаю, что ваш первый файл имеет те же значения в первом столбце.

Версия без BEGIN:

awk 'NR==FNR{h[$2]=$1; next}{print h[$1], $2}' file_1 file_2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...