次の 2 つのファイルがあります。
ファイル1
apple fruit 10 4
strawberry fruit 22 11
berry fruit 33 33
ball toy 1 12
straw thing 2 33
ファイル2
strawberry straw berry
rawberry raw berry
ファイル2の列1をファイル1の列1と比較し、ファイル2の列2をファイル1の列1と、ファイル2の列3をファイル1の列1と比較したいと思います。一致するものが見つかったら、ファイル1に一致する3行すべてを表示したいと思います。
ここで出力は次のようになります。
strawberry fruit 22 11
straw thing 2 33
berry fruit 33 33
どうすればいいですか?
答え1
$ awk 'NR==FNR{a[$1]=$0} $1 in a && $2 in a && $3 in a{print a[$1] ORS a[$2] ORS a[$3]}' file1 file2
strawberry fruit 22 11
straw thing 2 33
berry fruit 33 33
- 最初の列に基づいて行を保存し、3つの列行がすべて一致した
file1
場合file2
、一致する行を印刷します。