LINUX.ORG.RU

help


0

0

народ помогите плиз... есть файл... в нем нужно найти 10 наиболее часто встречающихся слов и вывести на экран + сколько раз встречаются...

как сделать??

лабораторные надо делать самому и вовремя =)

anonymous
()

так покатит?

(defun most-words (file cnt)
  "Display CNT most occured words in FILE."
  (let* ((words (get-words-from-file file))
         (acw (sort-by-accumulator (accumulate-words words))))
         
     (mapcar (lambda (el)
               (insert (stdout-device)
                       (format "word: %s occurs %d times\n" (cdr el) (car el))))
         (last (reverse acw) cnt))))

usage: (most-words "test.txt" 10)

anonymous
()

эх, тряхнем стариной, подкинем студенту немного плюсиков, пусть порадует учителей незнакомыми им стандартными шуточками :-)

#include <iostream>
#include <map> 
#include <string> 
#include <iterator>

int main()
{
  using namespace std;
  typedef map<string, int> Counter;
  typedef multimap<int, string> InverseCounter;
  Counter counterL;
  InverseCounter inverseCounterL;
  for (istream_iterator<string> itL(cin);
       itL!=istream_iterator<string>();
       ++counterL[*itL++]);
  for (Counter::iterator itL=counterL.begin();
       itL!=counterL.end();
       ++itL)
    inverseCounterL.insert( make_pair(itL->second,itL->first));
  InverseCounter::reverse_iterator endL=inverseCounterL.rbegin();
  int stoperL=0;
  for (InverseCounter::reverse_iterator itL= inverseCounterL.rbegin();
       (itL!= inverseCounterL.rend()) && (stoperL!=10);
       ++itL, ++stoperL)
    cout<< itL->first<<"="<<itL->second<<endl;
};

anonymous
()

народ надо бы на bash или shell

vscorpion
() автор топика

cat a | awk 'BEGIN { RS = "[^A-Za-z]+" } { w[$0]++ } END{ delete w[""]; for(i in w) printf("%05d\t%s\n", w[i], i)}' | sort | tail

anonymous
()

а вообще надо учиться читать, хотя бы изредка:

info awk

anonymous
()

cat input.txt | \
while read -d " " a; do echo $a; done| \
sort | uniq -c | sort -r -n | head

Как вариант. При условии, что все слова в файле разделены
либо пробелом, либо переводом строки

ARom

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.