我有两个文件。
文件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
将被输出。