在下面awk
我尝试捕获KCNMA1
的所有条件,gene
中的行({1}}中的一行({1} } $8
的{{1}}
因此,在下面的示例中,file
中tab-delimited
出现的所有实例/行都将打印到KCNMA1
。
也可能有多个$8
,但是会包含名称output
。 ;
似乎捕获了可能的4个条件中的2个,但不是当前输出所示的所有实例。谢谢你:)。
基因
KCNMA1
文件
awk
当前输出
KCNMA1
所需的输出(R_Index Chr Start End Ref Alt Func.IDP.refGene Gene.IDP.refGene GeneDetail.IDP.refGene
4629 chr10 78944590 78944590 G A intergenic NONE;KCNMA1 dist=NONE;dist=451371
4630 chr10 79396463 79396463 C T intronic KCNMA1 .
4631 chr10 79397777 79397777 C - exonic KCNMA1;X1X .
4632 chr10 81318663 81318663 C G exonic SFTPA2 .
4633 chr10 89397777 89397777 - GAA exonic NONE;X1X;KCNMA1 .
)
R_Index Chr Start End Ref Alt Func.IDP.refGene Gene.IDP.refGene GeneDetail.IDP.refGene
1 chr10 79396463 79396463 C T intronic KCNMA1 .
2 chr10 79397777 79397777 C - exonic KCNMA1;X1X .
AWK
tab-delimeted
答案 0 :(得分:2)
对于单基因,只需作为变量传递
$ awk -v gene='KCNMA1' -v d=';' 'NR==1 || d $8 d ~ d gene d' file
您要使用的计数器似乎没必要,因为您想拥有第一个字段。
如果您想支持基于文件的基因列表,可以使用此
$ awk -v d=';' 'NR==FNR {genes[$0]; next}
FNR==1;
{for(g in genes)
if(d $8 d ~ d g d) print}' genes file