file1とfile2という2つのファイルを比較する必要があります。各ファイルには、で始まる56の列があります|
。最初の列はファイルの従業員番号で、2番目のファイルにも同じ従業員番号があることを確認します。それ以外の場合は、行全体を出力ファイルに書き込みます。ファイル2に同じ従業員番号がある場合は、各列の値を比較する必要があります。データが一致しない場合は、出力ファイルに書き込む必要があります。各列の値が一致する場合は、そのレコードを無視する必要があります。
サンプルファイル
ファイル1
2620|256034|131021|Mission Quality and Wipro Way|||
2622|256034|131021|Mission Quality and Wipro Way|||
2623|256034|131021|Mission Quality and Wipro Way|||
ファイル2
2620|256034|234567|Mission Quality and Wipro Way|||
2621|256034|131021|Mission Quality and Wipro Way|||
2622|256034|131021|Mission Quality|||
2623|256034|131021|Mission Quality and Wipro Way|||
出力例:
2620|256034|131021|Mission Quality and Wipro Way|||
2621|256034|131021|Mission Quality and Wipro Way|||
2622|256034|131021|Mission Quality|||
答え1
もしファイルがソートされました。作業を完了するのは簡単です。diff
comm -13 File1 File2
答え2
awk
たとえば、次のものを使用できます。
awk -F'|' 'NR==FNR {a[$1]=$0;next;}; !($1 in a) || ($0 != a[$1]);' File1 File2
あなたの例を使っFile1
てFile2
$ awk -F'|' 'NR==FNR {a[$1]=$0;next;}; !($1 in a) || ($0 != a[$1]);' File1 File2
2620|256034|234567|Mission Quality and Wipro Way|||
2621|256034|131021|Mission Quality and Wipro Way|||
2622|256034|131021|Mission Quality|||