Записать в файл наиболее распространенные слова по счетчику с Linux

Записать в файл наиболее распространенные слова по счетчику с Linux

Я хочу записать в файл слова, которые встречаются в тексте не менее X раз. Например, для:

a
b
a
c
b

и X = 2 я бы получил:

a
b

решение1

Это делает основные действия, хотя для большого списка слов это будет довольно медленно:-

set Count
sort < WordList | uniq | while read w; \
    do [ $(grep -c "^$w$" WordList) -ge $1 ] && echo $w; done

Более быстрый ответ (спасибо Камилу Мациоровски):-

set Count
sort < WordList | uniq -c | while read c w; do [ $c -ge $1 ] && echo $w; done

Это предполагает:-

  • Вы установите свои собственные FileListи Countзаписи.
  • В формате . слова располагаются по одному в строке WordList.
  • Регистр имеет значение (например, Theи theразличны).
  • Это запись командной строки: в скрипте она set Countбудет опущена и передана как параметр.

Этого должно быть достаточно для начала, хотя вам, скорее всего, придется вносить изменения в соответствии с вашими конкретными потребностями.

Связанный контент