BEGIN { MaxL = MaxD = -10000000; What = 2; MinL = MinD = 100000000 Alpha= 1 #defect weight Beta = 3 #loc weight DGoal= 0 LGoal= 1 Lall = Dall= Zip = 10^(-10) } Pass==1 { #$What = $What > 0 ? $What : 0 Dall += $1 Lall += $3 MaxD = $What > MaxD ? $What : MaxD MinD = $What < MinD ? $What : MinD MaxL = $3 > MaxL ? $3 : MaxL MinL = $3 < MinL ? $3 : MinL } Pass==2 { #$What = $What > 0 ? $What : 0 D = ($What - MinD)/(MaxD - MinD + Zip) L = ($3 - MinL)/(MaxL - MinL + Zip) Pos = (sqrt(Alpha*(DGoal-D)^2 + Beta*(LGoal-L)^2)/sqrt(Alpha+Beta)) # smallest pos is closest to defect goal and loc goal. inspect those first OFS = ","; printf("%5.4f,%5.4f,%5.4f\n",Pos,$3/Lall,$1/Dall) | "sort -r -t, -n -k 1" } #NR==1 { print "alpha "Alpha, " beta " Beta " lgoal " LGoal }