【问题标题】:compare two columns of different files and print if it matches linux比较两列不同文件并打印是否匹配linux
【发布时间】:2020-04-26 23:53:38
【问题描述】:

我有 2 个文件

文件 1:

包含(114 行数据)

head file1.txt   
    AC002310.2
    AC007298.2
    AL132780.1
    TULP1
    LINC02626
    LINC02211
    AC239809.3
    GTF2F2
    TCF3
    SOX4

文件 2: 包含 20236 行,2 列,制表符分隔

head file2.txt
AF130248.1      lncRNA
AC023296.1      lncRNA
AL137139.3      lncRNA
AC114778.2      lncRNA
AL162231.5      lncRNA
Z97205.3        lncRNA
AC010184.1      lncRNA
AL357874.3      lncRNA
AL645933.5      lncRNA
AC116317.2      lncRNA

所以我想比较这 2 个文件,并从文件 2 中仅保留基于第一列与文件 1 匹配的数据,但我还想要来自文件 2 的第二列的信息

我尝试了以下方法,但它不起作用

awk -F '\t' 'NR==FNR{c[$1]++;next};c[$1] > 0' file2.txt file1.txt

我将不胜感激任何帮助

【问题讨论】:

    标签: linux text-processing


    【解决方案1】:

    您的示例在两个文件中都没有提供任何匹配的字段,但应该这样做:

    awk 'NR==FNR{c[$1]; next} $1 in c' file1 file2
    

    这将打印file2 中第一个字段出现在file1 中的所有行

    【讨论】:

      【解决方案2】:

      听起来像grep 会起作用:

      grep -Ff file1.txt file2.txt
      

      【讨论】:

        猜你喜欢
        • 2016-10-23
        • 2017-07-30
        • 1970-01-01
        • 2020-05-18
        • 2012-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-24
        相关资源
        最近更新 更多