{ line = tolower($0); gsub(/[^[:alnum:]]+/, " ", line) n = split(line, word, " ") for (i = 1; i <= n; i++) { w = word[i] if (!(w in count)) order[++k] = w count[w]++ } } END { for (i = 1; i <= k; i++) print order[i], count[order[i]] }