BEGIN /#/{next} {for(I=2;i<=NF;I++) {Data[I,++Data[I,0]]=$I }} END{ for(I=1;I<=NF;I++) { Max=Data[J,Data[J,0]]; print Max delete Val for(J=1;J<=Max;J++) Val[J] = Data[I,J] N=asort(Val); printf("%s%s",Sep,Val[int(N/2)]); Sep="," } print "" }