С учетом входных данных:
$ ls ./in*
./in1.txt ./in2.txt
$ cat in*
What's up Buddy. How are you doin Buddy?
What's up Man. I am happy and good and awesome.
AWK подсчитывает слова с ассоциативным массивом, слова обрабатываются как буквенные символы (вам нужно будет настроить, а также создать логику для прописных / строчных букв и т. Д.).Обратите внимание, что также добавлен счетчик 4 для пустой строки:
$ gawk 'BEGIN { RS="[^A-Za-z]"; } { words[$0]++; } END { for ( i in words ) print(i " " words[i]); }' ./in*
happy 1
are 1
4
What 2
awesome 1
How 1
Buddy 2
and 2
I 1
up 2
good 1
doin 1
am 1
Man 1
you 1
s 2