2016-02-24 37 views
0

模式之間的差異中的模式行我有兩個文件: -印刷用,因爲它是和找到兩個文件

(注,組名稱將永遠有一個:年底)

文件1

Group1: 
user1 
user2 
Group2: 
User1 
User2 
User3 

文件2

Group1: 
user1 
Group2: 
User1 
User2 
User3 
User4 

組名和用戶名是不是靜態的,可以改變的。我希望能夠在一個輸出文件中打印來自每個組的添加項,並在另一個輸出文件中打印來自每個組的刪除項。輸出文件應該如下所示: -

addoutput文件

Group1: 
Group2: 
User4 

deleteoutput文件

Group1: 
User2 
Group2: 

基本上,文件1,請用戶在第1組和第2組的名單之前和文件2是最後一次審覈組成員時從組1和組2中添加或刪除的用戶列表。

添加輸出文件應顯示添加到任一組的組成員以及組名,刪除輸出文件應顯示從組中刪除的任何成員以及組名。

這可以通過sed或awk完成嗎?

回答

0

既然你問,我建議你使用awk。如果你有comm那麼這個任務會非常簡單。使用comm,你可以進行如下操作:

(1)使用awk轉換的文件,使每一行的形式爲:

groupname: username 

(2)兩個文件進行排序,並使用comm -23 FILE1 FILE2計算FILE1 - FILE2(以及類似的其他方式)

3)使用awk恢復爲所需的格式。

+0

很棒的建議。我試了一下,它幫助我找到了有變化的組和其所有成員,而不是差異。但是,謝謝你引導我走向正確的方向。 –

相關問題