awk - сравнивает 2 файла и печатает столбцы из обоих файлов

Я опубликовал что-то подобное некоторое время назад, и я подумал, что предоставленный код может помочь в решении моей проблемы, но, к сожалению, я не могу настроить его на свои нужды: awk - сравнить файлы и строки печати из обоих файлов [!d0 ]

Итак, у меня есть еще два файла с разделителями разделов.

file_1.txt

apple    2.5    5     7.2
great    3.8    10    3.6
see      7.6    3     4.9
tree     5.4    11    5
back     8.9    2     2.1

file_2.txt

apple    :::N
back     :::ADJ
back     :::N      
around   :::ADV      
great    :::ADJ         
bee      :::N         
see      :::V      
tree     :::N         

Выход должен выглядеть так:

apple    :::N      2.5    5     7.2     
great    :::ADJ    3.8    10    3.6
back     :::ADJ    8.9    2     2.1
back     :::N      8.9    2     2.1
see      :::V      7.6    3     4.9
tree     :::N      5.4    11    5 

Разница с другим сообщением заключается в том, что мне просто нравится сравнивать первые столбцы файла file_1.txt и file_2.txt, а затем печатать всю строку файла file1.1.txt с столбец 2 файла_1.txt в outfile. Мне неважно, в каком порядке файл $ file_2.txt печатается в outfile, поэтому outfile также может выглядеть как

back     8.9    2     2.1    :::N
back     8.9    2     2.1    :::V etc.

. Проблема заключается в дубликатах в столбце 1, как здесь. В противном случае я мог бы, конечно, использовать paste. Проблема с этой `awk-командой заключается в том, что она не читает столбец2 в массиве, и если я скажу ему ее распечатать, это, конечно, невозможно.

awk 'NR==FNR {a[$1]; next} $1 in a {print $0, a[$2]}' OFS='\t' file_2.txt file_1.txt > outfile.txt

Я с удовольствием оцениваю любая помощь! Извините за тупость и здесь, кажется, что я полностью в тупике.

1
задан 13 April 2017 в 15:23

0 ответов

Другие вопросы по тегам:

Похожие вопросы: