Step 1, Get AWK. You could do this in Perl, but AWK is simpler. Myself, I like cygwin (http://sources.redhat.com/cygwin) but that requires you to install a "system". You'd probably be better off with one of the Win32 ports of gAWK see http://www.faqs.org/faqs/computer-lang/awk/faq/ Step 2. Put this program in a file (say wordcount.awk): BEGIN { RS="[ \t\n]" } /^$/ { next; } { # word = $ 0 # use this for case-sensitive word = toupper($0) # use this for not case-sensitive count[word]=count[word]+1; } END { for (x in count) { print x " " count[x]; } } Step 3. Execute: awk -f wordcount.awk test.txt If test.txt has is in it: This is a word counter A word counter is this Then the output will be: A 2 IS 2 COUNTER 2 THIS 2 WORD 2 If you don't want to ignore case, just move the # side at the left margin down to the next line. Then you'd get: A 1 this 1 a 1 This 1 counter 2 word 2 is 2 Good luck! Al Williams AWC * Floating point math for any microprocessor: http://www.al-williams.com/awce/pak1.htm -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.