比较unix和awk或perl脚本中的两个文件

时间:2014-12-26 12:59:37

标签: unix

我是shell脚本的新手。一个生产脚本被错误地删除了。我们需要准备脚本。我的要求如下。

我必须比较两个文件,file1和file2。每个文件有56列,以|分隔。

第一列是文件中的员工编号,我将检查第二个文件中是否存在相同的员工编号。如果不是,我们将整行写入输出文件。如果file2中存在相同的员工编号,我需要比较每列的值。如果数据不匹配,我们必须将其写入输出文件。如果每列的值匹配,那么我们需要省略该记录。

Sample File
File 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|||
File 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|||

Sample Output:
2620|256034|131021|Mission Quality and Wipro Way|||
2621|256034|131021|Mission Quality and Wipro Way|||
2622|256034|131021|Mission Quality|||

1 个答案:

答案 0 :(得分:1)

awk 'FILENAME=="file1" {arr[$0]++}
     FILENAME=="file2" {if($0 in arr) {continue} else {print $0} }' file1 file2 >newfile

这个论坛真的不适合修复你的工作灾难。和。注意:您的规格对我来说似乎很模糊。此示例将file2记录写入新文件。这似乎是你需要说的。

您也可以从备份中恢复脚本。