awk '{ for (i=1; i<=NF; i++) { if ($i != ".") { freq[$i]++; Total++; } } } END { for (x in freq) { # print x, freq[x]/Total, freq[x], Total; tabla[++cont] = freq[x]; prob[cont]=freq[x]/Total; } asort(prob); asort(tabla); # print "\n----------------->\n"; for (i=cont; i>=1; i--) { TotalZipf = TotalZipf + (1/(cont+1-i)); zipf[i] = (1/(cont+1-i)); } for (i=cont; i>=1; i--) { print tabla[i], (cont+1-i), tabla[i]*(cont+1-i), prob[i], 1/(cont+1-i), 1/(cont+1-i)/TotalZipf; Distancia = Distancia + (prob[i] * log (prob[i] / zipf[i])); } print Distancia > "/dev/stderr"; } ' $*