Даниил Подрабинек (grohman) wrote in ru_shell,
Даниил Подрабинек
grohman
ru_shell

Посчитать самые частые слова

Возникла задача посчитать слова в большом текстовом файле и сделать по ним топ-листинг. Сами слова разделены пробелами и знаками препинания - короче говоря, обычный текст.
Вывод топ-20 самых популярных русских и английских слов в файле words.txt длинной более 4 символов делается командой



cat words.txt| sed s/" "/"\n"/g|sort|sed 's/[[:upper:]]/\l&/g'|sed s/[^a-zа-я-]//g|uniq -c -d| sort -n| awk 'length($2) > 4'|tail -n 20| sort -n -r

Либо, если у вас проблемы между локалью и кодировкой символов, можно сделать вот так:
cat words.txt| sed s/" "/"\n"/g|sort| sed s/"[\,\?\!\.\"\'\:\;]"//g|uniq -c -d| sort -n| awk 'length($2) > 4'|tail -n 20| sort -n -r
В этом случае будут исключаться знаки препинания, а не все кроме букв и символа -

Конечно, можно вместо cat words.txt делать cat folder/*.txt
Tags: awk, bash, sed
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

  • 7 comments