それぞれ2つの列を持つ2つのソートされていないファイルがあります。列1の値はfile2のすべての行の値と一致しますが、列2の値が異なるfile1のすべての行に対して列1の値とすべての列2の値を印刷したいと思います。
ファイル1の列1のデータがファイル2にない場合は削除できます。出力ファイルでソート順を維持する必要はありません。
file1:
2222,b2
4444,d4
1111,a1
3333,c3
5555,e5
file2:
2222,8f
5555,e9
4444,7c
3333,c3
OUTPUT file:
2222,b2,8f
4444,d4,7c
5555,e5,e9
ベストアンサー1
2番目のファイルを読み取り、内容を配列(キー=最初のフィールド、値=2番目のフィールド)に保存し、最初のファイルを読み取り、最初のフィールドが共通キーであるかどうか、およびそれらの2つのフィールドが異なるかどうかを確認します。結果が正の場合、キーと両方の値を印刷します。
awk 'BEGIN{FS=OFS=","}NR==FNR{z[$1]=$2;next}
{if (z[$1] && (z[$1]!=$2)){print $0, z[$1]}}' file2 file1