BEGIN {FS=","; Rx="2,3,5"; Data=1; Performance=-1} NR==1 { N=split(Rx,Rxs,/,/); } function key( str,i) { for(i=1;i<=N;i++) str = str "_" $Rxs[i] return str; } /#median/ {Cell[What,key()] = $(NF + 1 + Performance); Whats[What]=1; Keys[key()]=1; next } /#/ {next} {What=$Data} END {for(K in Keys) { Name[++Id]=K print Id "= " K } printf("results") for(I=1;I<=Id; I++) printf ","I print for (W in Whats) { Str=""; printf(W) Min = 10^32; for(K in Keys) Min = (Cell[W,K] < Min? Cell[W,K] : Min) for(K in Keys) { Str = Str "," Cell[W,K] " " (Cell[W,K]==Min ? "*" : " ") } print Str } }