【问题标题】:How to check matches between two files如何检查两个文件之间的匹配
【发布时间】:2017-02-08 17:47:30
【问题描述】:

我有两个文本文件,每个文件有 2 列,每个都有选项卡,我想找到它们之间的匹配项。这些文件包含我要检查的信息的相反顺序的列。

文件 1:

B.1      Av1
Q7       G3
Q9       S4

文件 2:

Av1     B.1
G3      Q7      
S8      Q9

输出应该是:

B.1      Av1     match
Q7       G3      match
Q9       S4      no match

我知道我可以更改文件 2 中列的顺序,并使用 diff 或 awk 将它们与文件 1 进行比较,但我想知道是否有更简单的方法来比较我不需要更改的文件列位置。

【问题讨论】:

    标签: unix awk match multiple-columns


    【解决方案1】:

    你可以在不改变列顺序的情况下使用 awk:

    $ awk 'NR==FNR {a[$1]; next} {printf "%s\t%s\n", $0, $2 in a ? "match" : "no match"}' file2 file1
    B.1      Av1    match
    Q7       G3     match
    Q9       S4     no match
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-10
      • 1970-01-01
      • 1970-01-01
      • 2018-07-12
      • 2016-12-09
      • 2019-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多