2014-12-13 90 views
2

我想根據帶有校驗和的列表在兩個文件夾之間找到重複項。如何查找兩個列表(但不在兩個列表中)之間的校驗和匹配?

一些外殼腳本(一些的bashAWK或類似的)將是最好的溶液。

假設兩個文件夾我已經生成了兩個列表

[FolderA.txt] 
file1 abc1 
file2 abc1 
file3 def5 

[FolderB.txt] 
file4 abc1 
file5 mno2 
file6 def5 

現在我想找到答案,那

  • 文件1匹配文件4(同校驗和abc1)
  • file2與file4匹配(相同checksu米ABC1)
  • file3的匹配file6(相同的校驗def5)

但是,我只希望在文件夾之間的匹配,而不是一個文件夾中。因此,我不想在file1和file2之間進行匹配。

回答

2

您可以使用此:

join -j2 <(sort -k2 FolderA.txt) <(sort -k2 FolderB.txt) 

輸出:

 
abc1 file1 file4 
abc1 file2 file4 
def5 file3 file6 

如果你想只列2和3,加入| cut -d " " -f 2-

+1

完美的作品,謝謝。正如我現在所瞭解的,爲了只顯示文件名,還可以使用參數'-o 1.1,2.1'和'join'。 – David 2014-12-13 07:07:51

+0

選項'-o'非常好。 – Cyrus 2014-12-13 07:45:36