Что самый легкий путь состоит в том, чтобы войти в список наиболее распространенных слов в списке?

Попробовать rm ./-X от папки, в которой находится "-X".

5
21.01.2013, 21:17
3 ответа

В течение более быстрого времени кодирования Это - то, что я пробую успешно прямо сейчас:

printf '%s\n' $(cat *.txt) | sort | uniq -c | sort -gr | less 
4
27.01.2020, 20:37
  • 1
    , Это почти прекрасно, хотя он считает "Это" и "Это" как два слова. Какой-либо способ зафиксировать это? –  Korgan Rivera 21.01.2013, 21:13
  • 2
    @KorganRivera, удалите нежелательную пунктуацию прежде, чем передать его printf с tr: cat *.txt | tr '[:punct:]' ' '. Можно также хотеть сделать соответствие нечувствительным к регистру: tr 'A-Z' 'a-z'. –  Thor 21.01.2013, 21:28
  • 3
    @Thor Спасибо. Я хочу сохранить это чувствительным к регистру. Я пытаюсь составить список наиболее распространенных немецких слов в данных текстах. Все немецкие существительные использованы для своей выгоды, таким образом. –  Korgan Rivera 21.01.2013, 21:41
  • 4
    @Korgan Rivera - то, что Вы просите, называют "стоп-словами", или "стоп-лист" Видят мой ответ в unix.stackexchange.com/questions/41479 / … для того, как сделать это. –  Bruce Ediger 21.01.2013, 22:02

Запись его в C будет, скорее всего, иметь быстрое время выполнения, но занимает больше времени записать. Хороший компромисс мог бы быть должен использовать awk:

tally.awk

FNR == NR { pat[$1] = 1; next }
{
  for(p in pat) 
    if(index($0, p)) 
      pat[p]++
} 
END { 
  for(p in pat) 
    print pat[p]-1, p
}

Это будет сначала читать, одним словом, список (одно слово на строку), затем считать соответствия найденными в остальной части входа. Выполните его как это:

cat *.txt | awk -f tally.awk wordlist - | sort -nr

Вышеупомянутое будет соответствовать подстрокам также, если Вы только захотите распознать целые слова, заменить index строка с:

if(match($0, "\\<" p "\\>"))
2
27.01.2020, 20:37

Вы могли сделать (с GNU grep):

grep -hEo "[[:alnum:]_'-]+" ./*.txt | sort | uniq -c | sort -rn

Изменение [:alnum:]_'- выше к тому, что должно быть составляющими слова.

1
27.01.2020, 20:37

Теги

Похожие вопросы