比较不同文件的两列,如果与linux匹配,则进行打印

问题描述 投票:0回答:2

我有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中保留与基于第一列的文件1匹配的数据,但我也希望从文件2的第二列中获取信息

我尝试了以下操作,但不起作用

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

我将不胜感激

linux text-processing
2个回答
0
投票

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

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

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


0
投票

[C0之类的声音将起作用:

file1
© www.soinside.com 2019 - 2024. All rights reserved.