grep 获取整行

grep 获取整行

我有一个像这样的文件:

  Chr1    Cufflinks       exon    7136    7944    .       +       .       gene_id "XLOC_000001"; transcript_id "TCONS_00000003"; exon_number "5"; gene_name "LOC_Os01g01010"; oId "TCONS_00000003"; nearest_ref "LOC_Os01g01010.2"; class_code "="; tss_id "TSS1"; p_id "P2";
  Chr1    Cufflinks       exon    8028    8150    .       +       .       gene_id "XLOC_000001"; transcript_id "TCONS_00000003"; exon_number "6"; gene_name "LOC_Os01g01010"; oId "TCONS_00000003"; nearest_ref "LOC_Os01g01010.2"; class_code "u"; tss_id "TSS1"; p_id "P2";

我想获取整行,只要一行中有“u”

输出应该是这样的:

  Chr1    Cufflinks       exon    8028    8150    .       +       .       gene_id "XLOC_000001"; transcript_id "TCONS_00000003"; exon_number "6"; gene_name "LOC_Os01g01010"; oId "TCONS_00000003"; nearest_ref "LOC_Os01g01010.2"; class_code "u"; tss_id "TSS1"; p_id "P2";

我试过grep -o "u" a >b

答案1

使用awk您可以使用以下方式匹配第 22 列

awk '$22=="\"u\";"' a

答案2

grep "\"u\";" a >b

也会做这项工作。

答案3

在最简单的情况下,您只需要包含 的任何行"u",您可以这样做

grep '"u"' a > b

如果您想确保它仅在 gff 文件的描述字段中匹配(假设这是一个格式正确gff 文件与制表符分隔字段),您可以执行以下操作:

awk -F"\t" '$NF~/"u"/' a > b

"u"最后,如果您只对位于属性字段的第 7 个子字段字段中的情况感兴趣,则可以使用:

awk -F";" '$7~/"u"/' a > b

答案4

或者grep对于class_code "u"

grep 'class_code "u"' input

相关内容