Нужен универсальный анализатор логов.

Angelika_900

Есть большой (900 мегов)лог файл, следующей структуры:
дата-время; IP; получено; передано
надо сгруппировать его по дате а потом по IP и просуммировать, чтобы было так:
дата; IP; всего получено; всего передано.
Чем это можно сделать, например AlterWind LogAnalyzer это умеет, но у свободной версии ограничение на размер лога в 25 метров, а ломалку негде найти не могу.

zsn66

Написать 10 строчек на перле ?

Angelika_900

Напиши если не сложно.
Я сам на перле плохо умею, я думал что быстрее найду прогу, чем на перле напишу, но за два часа не нашел

zsn66

А на чем умеешь?

Angelika_900

Можно считать что ни на чем, я уже года 2 ничего не писал, кроме задач для практикума по ЭВМ.
Если тебе не сложно написать эти 10 строчек, то напиши, плз.

zsn66

Примерно так:


# Warning: not tested
my %ATX, %ARX;
while (<STDIN>) {
m/^(.*)-.*; (.*); (.*); (.*)$/ or die "Invalid input line: $_"; #adjust this for your input format
($d, $ip, $tx, $rx) = ($1, $2, $3, $4);
$key = "$d; $ip";
defined ($ATX{$key}) or ($ATX{$key} = 0);
$ATX{$key} += $tx;
defined ($ARX{$key}) or ($ARX{$key} = 0);
$ARX{$key} += $rx;
}
while $key, $tx) = each %ATX) {
$rx = $ARX{$key};
print "$key; $tx; $rx\n";
}

Angelika_900

Спасибо!
Оставить комментарий
Имя или ник:
Комментарий: