Я знаю, что существуют мои из тех же вопросов, уже ответил на этой платформе, но я попробовал все решения в течение нескольких часов, и я не могу найти свою ошибку. Таким образом, я ценил бы любую подсказку или справку для того, что я делаю неправильно.
Как здесь https://unix.stackexchange.com/questions/216511/comparing-the-first-column-of-two-files-and-printing-the-entire-row-of-the-secon и здесь как я могу сравнить данные в 2 файлах для идентификации общих и уникальных данных? У меня есть два файла, из которых мне нравится отфильтровывать строки файла 2, которые соответствуют столбцу 1 в файле 1. По-моему, предлагаемое решение для тех же вопросов должно работать, но к сожалению они не делают. Мои файлы разделяются от вкладки.
file_1.txt
apple
great
see
tree
file_2.txt
apple 5.21 Noun
around 6.21 Adverb
great 2 Adjective
bee 1 Noun
see 7.43 Verb
tree 3 Noun
Вывод должен быть похожим:
apple 5.21 Noun
great 2 Adjective
see 7.43 Verb
tree 3 Noun
Я попробовал коммуникацию-12,
awk (e.g awk 'NR==FNR{a[$1];next} ($1 in a)' file_1.txt file_2.txt > output.txt)
Я знаю, что это могло бы быть глупым вопросом, я приношу извинения заранее. Однако я, кажется, не могу понять это.
Один способ сделать это был бы похож на это:
awk ' BEGIN { while ((getline <"file2.txt") > 0) {REC[$1]=$0}}
{print REC[$1]}' <file1.txt
getline в запуске читает file2.txt и хранит его в массиве REC
, индексированный первой записью.
"Основной" раздел кода затем читает содержание file1.txt и просто использует первое слово на строке для поиска соответствующей строки из file2.txt, теперь сохраненного в REC
.
Пример произвел:
apple 5.21 Noun
great 2 Adjective
see 7.43 Verb
tree 3 Noun