我有一个像这样的文件:
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