Uma maneira de fazer isso seria assim:
awk ' BEGIN { while ((getline <"file2.txt") > 0) {REC[$1]=$0}}
{print REC[$1]}' <file1.txt
O getline no início lê o arquivo2.txt e o armazena em um array REC
, indexado pelo primeiro registro.
A seção "principal" do código lê o conteúdo de file1.txt e simplesmente usa a primeira palavra na linha para procurar a linha apropriada do arquivo2.txt, agora armazenado em REC
.
Exemplo de saída:
apple 5.21 Noun
great 2 Adjective
see 7.43 Verb
tree 3 Noun