awk没有改变输出文件中的编号

时间:2016-08-17 21:13:51

标签: awk

以下awk假设使用$8中的每一行,以制表符分隔的input过滤gene。然后按顺序编号跳过标题的每一行。我认为它正在过滤input但没有正确编号。所需的输出只是过滤后的input,但$1R_Index按顺序编号。谢谢你:)。

输入

R_Index Chr Start   End Ref Alt Func.IDP.refGene    Gene.IDP.refGene
11  chr1    1147422 1147422 C   T   exonic  TNFRSF4
12  chr1    1168180 1168180 G   C   exonic  B3GALT6

基因内容

TNFRSF4
B3GALT6

当前输出 ---- header row---

R_Index Chr Start   End Ref Alt Func.IDP.refGene    Gene.IDP.refGene ---
11  chr1    1147422 1147422 C   T   exonic  TNFRSF4
12  chr1    1168180 1168180 G   C   exonic  B3GALT6

所需的输出

R_Index Chr Start   End Ref Alt Func.IDP.refGene    Gene.IDP.refGene
1   chr1    1147422 1147422 C   T   exonic  TNFRSF4
2   chr1    1168180 1168180 G   C   exonic  B3GALT6

AWK

awk 'NR==FNR{for (i=1;i<=NF;i++) a[$i];next} FNR==1 || ($8 in a)' gene input | awk '{split($2,a,"-"); print a[1] "\t" $0}' | cut -f2-> output

1 个答案:

答案 0 :(得分:2)

你的问题不明确,但这可能是你想要的:

awk 'NR==FNR{a[$0];next} FNR==1{print} $8 in a{$1=++c; print}' gene input