Даниил Подрабинек (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 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 7 comments