以下awk
假设使用$8
中的每一行,以制表符分隔的input
过滤gene
。然后按顺序编号跳过标题的每一行。我认为它正在过滤input
但没有正确编号。所需的输出只是过滤后的input
,但$1
或R_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
答案 0 :(得分:2)
你的问题不明确,但这可能是你想要的:
awk 'NR==FNR{a[$0];next} FNR==1{print} $8 in a{$1=++c; print}' gene input