繁体   English   中英

比较两列不同文件并打印是否匹配 linux

[英]compare two columns of different files and print if it matches linux

我有 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

我将不胜感激

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

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

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

听起来像grep会工作:

grep -Ff file1.txt file2.txt

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM