awk:2つのファイルの比較

awk:2つのファイルの比較

私はfile1.txtを持っています

USA Joe 123.123.123
Russia Marry 458.786.892
Canada Greg 151.844.165
Latvia Grace 125.895.688

とファイル2.txt

1 123.123.123
2 151.844.165
3 465.879.515

result.txt新しいファイルを作成し、file1とfile2にアドレス(xxx.xxx.xxx)がある行だけを印刷したいので、結果は次のようになります。

USA Joe 123.123.123
Canada Greg 151.844.165

awkを使用する必要がありますが、これら2つのファイルにどのように使用する必要がありますか?

答え1

あなたは試すことができます:

awk 'FNR==NR{a[$2];next};$NF in a' file2.txt file1.txt > result.txt

答え2

たぶん、次のようなものがあります。

join -1 3 -2 2 <(sort -k 3 file1.txt) <(sort -k 2 file2.txt) | awk '{ print $2, $3, $1 }'

これ:

  • メモリ内のファイルを完全に読み取らないでください。
  • まだ使っていますawk(1);)

関連情報