|
|
|
awk и exim log
|
|||
|---|---|---|---|
|
#18+
Помогите пожалуйста человеку, который видит awk в первый раз) Буду очень признателен есть лог вида: месяц день время fm exim[19822]: 0000-00-00 время ID_письма <= емаил_отправителя H=[UNAVAILABLE] (DNMIAVBUI) [118.170.67.214] P=esmtp S=5003 id=36A4CA33559C4526A5085A2DED11E336@applecf5d520e1 месяц день время fm exim[19826]: 0000-00 время ID_письма => емаил_получателя R=dnslookup T=remote_smtp H=smtp1.efgbank.com [193.0.237.78] X=TLSv1:DHE-RSA-AES256-SHA:256 месяц день время fm exim[19826]: 0000-00-00 время ID_письма Completed Нужно с помощью awk выбрать 5 самых активных ящиков и для каждого ящика наиболее активного собеседника. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2011, 19:25 |
|
||
|
awk и exim log
|
|||
|---|---|---|---|
|
#18+
>5 самых активных ящиков предположим что надо посчитать кол-во строк сгруппировав по 2-му столбцу: awk '{a[$3]=a[$3]+1}END{for(i in a)print i,a[i]}' >и для каждого ящика наиболее активного собеседника не смог распарсить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2011, 20:07 |
|
||
|
awk и exim log
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис предположим что надо посчитать кол-во строк сгруппировав по 2-му столбцу: awk '{a[$3]=a[$3]+1}END{for(i in a)print i,a[i]}' ну если брать конкретно мой лог то тут выходит awk '{a[$10]=a[$10]+1}END{for(i in a)print i,a[i]}' или я что-то не понимаю? Не очень дружу с регулярными выражениями... но допустим этот запрос мне выдал такой список: ***@jobbyyou.com 1 *****@yandex.ru 1 ****@eth183.eld.ford.com 3 ***@sartoriuscorp.com 42 e3-1268310157698-7c49II5a5c7f@e3.emsmtp.com 1 [217.69.129.202] 2 ****@mcomi.com 2 Т.е. иногда попадаются емайлы, иногда IP. как из этого вытащить только 5 самых активных ящиков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2011, 20:47 |
|
||
|
awk и exim log
|
|||
|---|---|---|---|
|
#18+
откуда у вас айпи я не знаю, это ваш лог. Тут кстати нет регулярных выражений, вообще ни одного. Ассоциативный массив, ячейки которого инкрементируются 1. Можно отсортировать и awk-м но проще awk .....|sort -k2nr|head -5 sort -k2nr сортируем 2-й столбец, как number и revers head -5 первые пять строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2011, 23:12 |
|
||
|
awk и exim log
|
|||
|---|---|---|---|
|
#18+
В состав exim входит готовая тулза eximstats, она половину описанной задачи делает. Написана на perl, должно быть не очень сложно доработать. С другой стороны, не очень понятно зачем писать практическую задачу на языке, "который видит awk в первый раз"? В знакомых языках нету возможности читать текст из файла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2011, 23:16 |
|
||
|
|

start [/forum/topic.php?fid=25&msg=37406915&tid=1484057]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
182ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 502ms |

| 0 / 0 |
