我必须比较两个文件,file1 和 file2。每个文件有 56 列,以|
.第一列是文件中的员工编号,我将检查第二个文件中是否存在相同的员工编号。如果没有,我们会将整行写入输出文件。如果文件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|||