我有一个 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)
;)