別のテキストファイルからテキストファイルを作成する

別のテキストファイルからテキストファイルを作成する

このようなテキストファイルがあります。

word_1 root_of_word_A
word_2 root_of_word_B
word_3 root_of_word_C
word_4 root_of_word_A

その他の類似ファイル

root_of_word_A root_of_word_1
root_of_word_B root_of_word_2
root_of_word_C root_of_word_3

次のように、最初の文書の別の単語を2番目の文書の別の単語に置き換える必要があります。

word_1 root_of_word_1
word_2 root_of_word_2
word_3 root_of_word_3
word_4 root_of_word_1

awkを使うとこんなことができると思います。私はこれを試しました:

awk 'NR==FNR {print $1}{c[$2]++;next};c[$1]>0{print $2}' file1 file2

問題は、file1の最初の列とfile2の2番目の列を印刷する方法がわからないことです。

最初のファイルと2番目のファイルの行数が異なると言われており、私がやりたいことをより明確にするための例があります(問題はAを1に変換するのではなく、root_of_the_word全体を変換することです)。

ベストアンサー1

の単語file2が一意の場合は、ファイルの順序を逆にして配列を作成してから次のようfile2に適用できますfile1

$ awk 'NR==FNR{a[$1]=$2;next}{print $1,a[$2]}' file2 file1
word_1 root_of_word_1
word_2 root_of_word_2
word_3 root_of_word_3
word_4 root_of_word_1

おすすめ記事