Как я могу сравнить строки в текстовых файлах Unix и добавить их вместе в другой текстовый файл? - PullRequest
0 голосов
/ 21 мая 2019

У меня есть текстовый файл 1, который имеет 3 столбца. В первом столбце содержится число, во втором - слово (которое может быть как укус, похожий на собаку, или число, подобное 1050), в третьем столбце - TAG заглавными буквами. У меня есть другой текстовый файл 2, который имеет 2 столбца. В первом столбце есть номер, во втором - TAG заглавными буквами. Я хочу сравнить каждую строку в моем текстовом файле 1 с каждой строкой в ​​моем текстовом файле 2. Если TAG в столбце [3] в текстовом файле 1 совпадает с TAG в столбце [2] в текстовом файле 2, то я хотите сохранить номер в текстовом файле 1 рядом с номером в текстовом файле 2 рядом со словом в текстовом файле 1. В текстовом файле 2 нет повторяющихся тегов, а в текстовом файле 1 нет повторяющихся слов. Иллюстрация:

Текстовый файл 1

2    2737    HPL
32   hello   PLS
3    world   PLS
323  .       OPS

Текстовый файл 2

342  HPL
56   PLS
342  DCC
4    OPS

Я хочу:

2   342  2737
32  56   hello
3   56   world
323 4  .

1 Ответ

0 голосов
/ 21 мая 2019

Вы можете сделать это в awk следующим образом:

awk 'FNR==NR { h[$2] = $1; next } $3 in h { print $1, h[$3], $2 }' file2 file1

Первая часть сохраняет ключ и столбец из файла 2 в ассоциативном массиве (h), вторая часть сравнивает столбец 3из файла 1 в этот массив и печатает соответствующие части.

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