Я опубликовал что-то подобное некоторое время назад, и я подумал, что предоставленный код может помочь в решении моей проблемы, но, к сожалению, я не могу настроить его на свои нужды: 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
Я с удовольствием оцениваю любая помощь! Извините за тупость и здесь, кажется, что я полностью в тупике.