2015-04-29 99 views
-1

假設我們有兩個名爲file1和file2的文件。在shell腳本中比較兩個文件

File1:  
a=b  
c=d  
e=f 

File2: 
a=p 
c=o 
e=f 
g=h 
i=j 

這裏有file2的file1和不同values.Apart的一些額外的鍵 - 值對自身相同的密鑰。

比較兩個文件鍵,用基於鍵匹配的file1值替換file2值。保留file2中的新條目。

所以,我最後的輸出應該是:

File2: 
a=b 
c=d 
e=f 
g=h 
i=j 

在此先感謝。

+3

看起來這在'awk'中應該是非常簡單的。我們不是在這裏爲你寫的,你必須做你自己的工作。如果無法正常工作,我們將幫助您解決問題。 – Barmar

+1

順便說一句,這不是什麼「差異」的含義。這意味着要報告兩個文件之間的差異。你想以某種方式合併它們。 – Barmar

+0

探討如何解析具有鍵=值對的屬性文件。但與關聯數組完全混淆。更好地考慮發佈問題。 – Honey

回答

0

不使用腳本的最快方法是使用名爲「meld」的工具。
我可以給接近問題的一種方法(儘管不是最佳的)的線從第一文件中的行

1.read基於「=」表達

3.store

2.split兩個變量爲鍵和值 使所有關鍵值對的陣列從所述第二文件

4.read並重覆上述步驟

比較兩個陣列和s ave值不在第一個數組中

在這種特殊情況下,您可以在shell中使用「cut」命令來選擇字段。 我個人比較喜歡Perl腳本,用於這樣的文件操作:)

+0

感謝您的回覆,請嘗試使用正確的方法更新此問題。 – Honey