Подсчет встречающихся слов в файлах

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Agronom
ст. сержант
Сообщения: 305
Зарегистрирован: 2006-12-11 10:30:13

Подсчет встречающихся слов в файлах

Непрочитанное сообщение Agronom » 2007-05-31 8:43:15

Хочу сделать скрипт - анализатор эффективности правил для assassina, но не соображу как организовать счетчик.
Смысл скрипта такой: есть файл со списком названий правил (которые попадают в хидер) и список писем, попавших в спам с пометками в хидере, какие правила сработали для этого письма. Я беру поочереди названия правил и проверяю их наличие в теле писем, встретилось - щелкнул счетчик. Код пока такой, но он некорректный - счетчик прибавляет значение к предыдущему - оно и понятно, ведь нигде не сбрасывается :) и после работы он выдал для каждого значения одинаковый результат) и значение счетчика задваивается - в хидере одно и то же правило встречается 2 раза для одного срабатывания, один раз в списке, второй раз в развернутом варианте - когда указывается сколько баллов добавило каждое правило:

Код: Выделить всё

count=""; #счетчик, пока нулевой

SPISOK1=""; # набор слов для поиска
SPISOK2=""; # список файлов, где нужно искать эти слова

file1="/home/test/test_rul"; # откуда берем имена правил
file2="/home/test/test_spam_list"; #откуда берем файлы писем

while [ 1 ]
do
read SPISOK1 || break # начинаем читать список имен правил пока не
закончится файл
    while [ 2 ]
        do
    read SPISOK2 || break #получаем имена писем пока
не закончится файл

    if cat /home/test/spam/$SPISOK2 | awk '$0~/$SPISOK1/'; then
       let count="$count+1"
    fi

    done < $file2
    echo $SPISOK1 " = "$count >> /home/test/itogi # после поиска выводим результат
done < $file1
P.S. Может лучше всё сделать в Перле или шелл тоже сойдет? И как лучше сделать? Сначала брать правило и искать его в каждом письме, или брать по одному письму и проверять ВСЕ правила на присутствие, а потом плюсовать в массив результаты? Что будет быстрее обрабатывать данные?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-06-09 8:50:21

дважды перечитал - идею так и не понял..
какие счётчики, что считают... :)
Убей их всех! Бог потом рассортирует...