我有一个这样的文件:
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?