Как объединить содержимое двух файлов путем сопоставления данных - PullRequest
0 голосов
/ 20 июня 2019

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

Файл1:

ID:1
Data:ABC
ID:2
DATA:DEF
ID:5
DATA:XYZ

Файл2:

ID:1
Data:GHI
ID:2
Data:JKL
ID:3
Data:MNO
ID:4
Data:OBC
ID:5
Data:XYZ

Ожидаемый результат:

Идентификатор: File1Data: File2Data

1:ABC:GHI
2:DEF:JKL
5:XYZ:XYZ

Задача состоит в том, чтобы сначала сопоставить идентификатор, а затем распечатать их данные вместе.Есть ли какая-нибудь команда в bash для этого.Идентификатор не отсортирован, он может появиться любым способом.Я новичок в написании сценариев, пожалуйста, помогите мне с этим.

1 Ответ

0 голосов
/ 20 июня 2019

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

awk 'BEGIN{FS=OFS=":"}FNR==NR{if($0~/^ID/){val=$2;next};a[val]=$2;next} /^ID/{val=$2;next} a[val]{print val,a[val],$2}'  File1  File2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...