awk grep регулярные выражения

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Пользователь
проходил мимо

awk grep регулярные выражения

Непрочитанное сообщение Пользователь » 2012-06-27 18:01:22

имеем файл со строчками вида
бла-бла-бла 404 бла-бла-бла-лаб
бла-бла-бла 501 бла-бла-бла-лаб
бла-бла-бла 404 бла-бла-бла-лаб
бла-бла-бла 404 бла-бла-бла-лаб

с помощью регэкспа выделяем код ошибки, подсчитываем количество возникновения каждой из них.
пока:
404 - 3
501 - 1
вероятность возникновения 501 = 1/4, 404 -- 3/4
т.е.
404 - 0.75
510 - 0.25
как это реализовать?
после чего по полученным данным нужно еще построить гистограмму из гнуплот..

Хостинговая компания 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/

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: awk grep регулярные выражения

Непрочитанное сообщение kpp » 2012-06-27 22:35:38

Например так:

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

export LC_NUMERIC="POSIX"

awk 'BEGIN {
            count_404=0
            count_501=0
           }
          {
           if ( $0 ~ /404/ ) count_404+=1;
           if ( $0 ~ /501/ ) count_501+=1;
          }
          END {
               summ=count_404+count_501;
               print "404 - "count_404/summ"\n501 - "count_501/summ
              }' filename_with_bla_bla_bla

Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.