文本处理

文本处理

我有两个文件。

文件A:

       Chr1     Cufflinks     exon    2903   3268   .   +   .   gene_id "XLOC_000001"; transcript_id "TCONS_00000002"; exon_number "1"; oId "CUFF.1.2"; tss_id "TSS1";

       Chr1     Cufflinks     exon    3354   3616   .   +   .   gene_id "XLOC_000001"; transcript_id "TCONS_00000002"; exon_number "2"; oId "CUFF.1.2"; tss_id "TSS1";

       Chr1     Cufflinks     exon    4357   4455   .   +   .   gene_id "XLOC_000001"; transcript_id "TCONS_00000761"; exon_number "3"; oId "CUFF.1.2"; tss_id "TSS1";

文件B;

TCONS_00000066
TCONS_00000600
TCONS_00000761
TCONS_00000762
TCONS_00000773

我想将 B 文件匹配并打印匹配的位置。在本例中,文件 A 中的 id 位于第 12 列。

输出应该是这样的

    Chr1    Cufflinks   exon    4357    4455    .   +   .   gene_id "XLOC_000001"; transcript_id "TCONS_00000761"; exon_number "3"; oId "CUFF.1.2"; tss_id "TSS1";

文件 A 中的整行应该在文件 C 中

我尝试了 awk 命令但失败了。

awk 'FNR==NR {a[$12];next}; !($12 in a)' B A >C

请帮忙。

答案1

grep -fB A

会做你正在寻找的事情;该-f选项指定从中加载模式的文件,每行一个模式。任何A与模式匹配的行都B将被输出。

相关内容