如何在两个列表之间找到校验和匹配(但不在两个列表中)?

时间:2014-12-13 04:15:28

标签: bash shell awk scripting

我想根据带校验和的列表在两个文件夹之间找到重复项。

使用一些shell脚本(一些 bash awk 或类似的)的解决方案将是最好的。

假设我已经为两个文件夹生成了两个列表

[FolderA.txt]
file1 abc1
file2 abc1
file3 def5

[FolderB.txt]
file4 abc1
file5 mno2
file6 def5

现在我想找出那个

  • file1匹配file4(相同的校验和abc1)
  • file2匹配file4(相同的校验和abc1)
  • file3匹配file6(相同的校验和def5)

但是,我只希望文件夹之间匹配,而不是在一个文件夹中。因此,我不希望file1和file2之间匹配。

1 个答案:

答案 0 :(得分: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-