27 lines
664 B
Awk
27 lines
664 B
Awk
# JUMBLEA.AWK - words with the most duplicate spellings
|
|
# syntax: GAWK -f JUMBLEA.AWK UNIXDICT.TXT
|
|
{ for (i=1; i<=NF; i++) {
|
|
w = sortstr(toupper($i))
|
|
arr[w] = arr[w] $i " "
|
|
n = gsub(/ /,"&",arr[w])
|
|
if (max_n < n) { max_n = n }
|
|
}
|
|
}
|
|
END {
|
|
for (w in arr) {
|
|
if (gsub(/ /,"&",arr[w]) == max_n) {
|
|
printf("%s\t%s\n",w,arr[w])
|
|
}
|
|
}
|
|
exit(0)
|
|
}
|
|
function sortstr(str, i,j,leng) {
|
|
leng = length(str)
|
|
for (i=2; i<=leng; i++) {
|
|
for (j=i; j>1 && substr(str,j-1,1) > substr(str,j,1); j--) {
|
|
str = substr(str,1,j-2) substr(str,j,1) substr(str,j-1,1) substr(str,j+1)
|
|
}
|
|
}
|
|
return(str)
|
|
}
|