Gwak,使用柜台

时间:2014-06-10 15:57:29

标签: gawk

我有一个这样的文件:

22710005    Bra000017   22710005    Bra000017   22710005
CUSTOM22710675_oT.1 Bra000032_oG.1          
CUSTOM22710675_oT.1 Bra000032_oG.1          
22712128    Bra000040   22712128    Bra000040   22712128
22712128    Bra000040   22712128    Bra000040   22712128

我获得以下输出:

Bra010450   Bra010450   Bra010450   Bra010450   22722931
Bra010450   Bra010450   Bra010450   Bra010450   22722932
Bra000040   Bra000040   Bra000040   Bra000040   22712128
Bra000040   Bra000040   Bra000040   Bra000040   22712128
Bra000078   Bra000078   Bra000078   Bra000078   22707965

使用此命令:

gawk '{if (match($1,/(_[ox]T\.[0-9]*)/,a)) if (match($2,/([A-Za-z0-9]*)(_[jox]G\.[0-9]*)/,b)) {print b[1]""a[1]"\t"b[1]""b[2]"\tNA\tNA\tNA"} else {print $2""a[1]"\t"$2"\t"$2"\tNA\tNA"} else if (match($1,/(_[j]\.[0-9]*)/,c)) {print $4""c[1]"\t"$2"\t"$2"\tNA\tNA"} else if (match($1,/TCONS/,d)) {print $1"\t"$2"\tNA\tNA\tNA"} else {print $4"\t"$2"\t"$2"\t"$4"\t"$5}}' tmp3 > tmp4

如果你看到我输出的前两行,除了最后一行之外它们是相等的。我想知道,我怎么能在gwak中使用一个计数器,以便在最后一个字段中使用第一行Bra010450_1和Bra010450_2?

0 个答案:

没有答案