#!/usr/bin/gawk -f { for(i = 1; i <= length; ++i) { l = substr($0, i, 1) if (l ~ /[[:alpha:]]/) ++c[l] } } END { asorti(c, fl) for (i = 1; i in fl; ++i) printf("%s %d\n", fl[i], c[fl[i]]) }