|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Kharchenko 2:5020/400 14 Feb 2003 12:26:28 To : All Subject : Запутанная сортировка. --------------------------------------------------------------------------------
Привет!
Задача не из легких, сам запутался. Hадеюсь на помощь.
Есть лог-файл, который поделен на столбцы, разделенные пробелами. Имя хоста,
объем, имя пользователя.
=====[ лог-файл ]=======
hostala 23376 ala
tod 237 sonya
tod 3223 dima
quin 21 sonya
tod 2312 sonya
tod 23 dima
quin 2 dima
======================
Hужно делать отчет, в котором должно показываться следующее: Имя
пользователя, объем, хост:
======[ отчет ]===========
ala 23376 hostala
sonya 2549 tod
sonya 21 quin
dima 3246 tod
dima 2 quin
========================
Т.е. каждый пользователь должен сортироваться по хостам, с которых он
потреблял трафик, а трафик на эти хосты должен суммироваться. Если же он
пользовался своим именем на нескольких хостах, то сортировка должна быть для
всех хостов из под которых он потреблял трафик.
Я допетрил, как отсортировать по двум колонкам, имя и объем. Вот программка:
===================================
#!/usr/bin/perl
open(LOG,"<-");
@log=<LOG>;
close LOG;
for ($i=0; $i<@log; $i++) {
@line = split(" ",$log[$i]);
$fields{$line[7]} += $line[4];
}
foreach $acct (sort keys %fields) {
$summbytes = $fields{$acct};
if($acct eq "-") { next; }
print "$acct, $summbytes\n";
}
exit;
===================================
Получается:
ala, 23376
sonya, 2570
dima, 3248
Hо тут не видно, с какого хоста заходил пользователь. Hужно более
детализированный отчет.
Помогите, пожалуйста. Лучше примером.
--
Best regards,
Andrey Kharchenko
--- ifmail v.2.15dev5
* Origin: Sirius (http://sirius.net.ru) (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/545097a51a63.html, оценка из 5, голосов 10
|