awk:比较两个文件

awk:比较两个文件

我有一个 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,只打印地址 (xxx.xxx.xxx) 都在 file1 和 file2 中的那些行,所以我的结果应该是

USA Joe 123.123.123
Canada Greg 151.844.165

我需要使用 awk,但是我需要如何将它用于这两个文件?

答案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);)

相关内容