2014-12-26 67 views
-1

我對shell腳本非常陌生。一個生產腳本被錯誤地刪除了。我們需要準備劇本。我的要求如下。比較unix和awk或perl腳本中的兩個文件

我必須比較兩個文件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||| 
+0

看看diff實用程序。 – lonewasp

回答

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

這個論壇是真的不意味着固定工作災害。和。注意:您的規格對我來說似乎很模糊。本示例將file2記錄寫入新文件。這似乎是你需要的。

您還可以從備份中恢復腳本。