Общие строки из 2 файлов на основе 2 столбцов на файл - PullRequest
1 голос
/ 29 февраля 2020

У меня есть два файла:

file1:

1   imm_1_898835    0   908972  0   A
1   vh_1_1108138    0   1118275 T   C
1   vh_1_1110294    0   1120431 A   G
1   rs9729550   0   1135242 C   A

file2:

1   exm1916089  0   865545  0   0
1   exm44   0   865584  0   G
1   exm46   0   865625  0   G
1   exm47   0   865628  A   G
1   exm51   0   908972  0   G
1   exmF    0   1120431 C   A

Я хочу получить файл, который перекрывается между файлом 1 и 2 на основе столбцов 1 и 4, и я бы напечатал общие значения для столбцов 1 и 4, а также столбцы 2 для файла1 и файла2.

например,

Я хочу:

1   908972  imm_1_898835    exm51
1   1120431 vh_1_1110294    exmF

1 Ответ

5 голосов
/ 29 февраля 2020

Не могли бы вы попробовать следующее.

awk 'FNR==NR{a[$1,$4]=$2;next} (($1,$4) in a){print $1,$4,a[$1,$4],$2}' file1  file2
...