あるファイルの列を別のファイルと比較する

あるファイルの列を別のファイルと比較する

File1次のデータを含むファイルがあります。

aaa
bbb

他のファイルのデータはFile2次のとおりです。

2,aaa,234
w,bbb,589
4,ccc,675

File1データを列2のデータと比較しFile2、一致するデータをあるファイルに印刷し、一致しないデータを別のファイルに印刷する必要があります。

ベストアンサー1

awk -F '
  !b{a[$0]; next}
  $2 in a {print > "matching.txt"; next}
  {print > "non-matching.txt"}' file1 b=1 file2

あるいは、2つのパスを作成し、ファイルが結合キーに基づいてソートされると仮定すると、次のようになります。

join -t , -2 2 -o 2.1,2.2,2.3 file1 file2 > matching.txt
join -t , -2 2 -v 2 -o 2.1,2.2,2.3 file1 file2 > non_matching.txt

おすすめ記事