私は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)
;)