在下面的awk
我想捕捉的KCNMA1
所有条件来过滤文件,在gene
行(这是名称的一个列的列表),它们在file
$8
这是tab-delimited
awk的使用另一个捕获所有实例
因此,在下面的示例中,KCNMA1
出现在$8
中的所有实例/行将打印到output
。
也可能有多个;
,但是名称(在此例中为KCNMA1
)将包含在内。 awk
似乎捕获了可能的4个条件中的2个,但并非如当前输出所示的所有实例。谢谢 :)。
基因
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 .
期望的输出(tab-delimeted
)
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 .
4633 chr10 89397777 89397777 - GAA exonic NONE;X1X;KCNMA1 .
AWK
awk -F'\t' 'NR==FNR{a[$0];next} FNR==1{print} {x=$8; sub(/;.*/,"",x)} x in a{$1=++c; print}' gene file > out
不知道为什么了' - 1',我还以为包括了所有的细节,但编辑。谢谢 :)。 – Chris
我认为这适合你:awk'NR <2; $ 8〜/ KCNMA1 /'文件 –