сравнить два файла (по разным разделителям) по 4 колонкам и вернуть желаемый результат - PullRequest
0 голосов
/ 16 октября 2019

У меня есть два файла. Файл 1 имеет 16 столбцов с разделителем «,» и файл 2 с 40 столбцами с разделителем «табуляция». Я хочу сравнить два файла. если столбцы 1,2,3,4 файла 1 совпадают со столбцами 1,2,4,5 0f файла2, выходной файл содержит всю информацию о файле2 и соответствующем столбце 16 файла 1.

файла1: введите описание изображения здесь

file2: введите описание изображения здесь

 awk 'BEGIN {OFS="/t"} NR==FNR{FS=",";a[$1,$2,$3,$4];b[$1,$2,$3,$4]=$16}{FS="/t";if (($1,$2,$4,$5) in a) print $0,b[$1,$2,$4,$5]}' <(sort -k2 file1) <(sort -k2 file2) >output

1 Ответ

0 голосов
/ 16 октября 2019

это должно работать.

$ awk 'NR==FNR {a[$1,$2,$3,$4]=$16; next} 
      ($1,$2,$4,$5) in a {print $0,a[$1,$2,$4,$5]}' FS=, file1 FS='\t' file2

нет необходимости предварительно сортировать файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...