count. = 0
ws = ''
transtab = XRANGE('A', 'Z') || XRANGE('a', 'z')
transin = XRANGE('A', 'Z')
transout = XRANGE('a', 'z')
notword = XRANGE('00'x, D2C(C2D('a')-1)) || XRANGE(D2C(C2D('z')+1), 'FF'x)
DO UNTIL LINES() = 0
PARSE LINEIN L
L = TRANSLATE(TRANSLATE(L, transout, transin), '', notword, ' ')
DO i = 1 TO WORDS(L)
w = STRIP(WORD(L, i))
count.w = count.w + 1
IF count.w = 1 THEN ws = ws w
END
END
STREAM('rexx_tmp', 'C', 'CREATE')
DO i = 1 to WORDS(ws)
w = WORD(ws, i)
IF count.w > 0 THEN DO
line = format(count.w, 7) || '09'x || w
CALL LINEOUT('rexx_tmp', line)
END
END
'c:\cygwin\bin\sort -nr rexx_tmp >rexx_sorted'
DO WHILE LINES('rexx_sorted') > 0
SAY LINEIN('rexx_sorted')
END
/*
STREAM('rexx_tmp', 'C', 'CLOSE')
STREAM('rexx_sorted', 'C', 'CLOSE')
'del rexx_tmp'
'del rexx_sorted'
*/