Вопрос начинающего... Есть файл (дамп ipcad) вида:
Source Destination Packets Bytes
10.1.166.192 10.1.166.41 207 151487
10.1.166.41 10.1.166.192 178 18842
217.107.212.62 10.1.166.192 10 1768
10.1.166.192 217.107.212.62 10 1253
81.176.76.106 10.1.166.192 15 14805
10.1.166.192 81.176.76.106 15 1298
195.2.91.126 10.1.166.192 358 106611
10.1.166.192 195.2.91.126 345 29077
217.16.27.121 10.1.166.209 4 1602
10.1.166.209 217.16.27.121 5 1026
217.16.29.131 10.1.166.209 25 26440
10.1.166.209 217.16.29.131 18 1698
213.219.244.88 10.1.166.209 136 127611
10.1.166.209 213.219.244.88 113 15942
Accounting data age is 105
Accounting data age exact 6342
Accounting data saved 1118897175
Interface fxp0: received 309516, 5 m average 5710 bytes/sec, 28 pkts/sec, droppe
d 0
Flow entries made: 565
Memory usage: 0% (49720 from 16777216)
Free slots for rsh clients: 9
IPCAD uptime is 1:45
router.local uptime is 30 days 23:52
Хочу из этого файла взять данные о трафике. Как это лучше сделать? Я сделал так
#!/usr/bin/perl
open(traf, "</tmp/traflog/ipcad.dump") || die "ERROR: file not found!";
while(<traf>)
{
($ip_s, $ip_d, $packets, $bytes) = split(" ");
print "$ip_s\t $ip_d\t $packets\t $bytes\n";
}
close(traf);
Но проблема в том, что по мимо информации о трафике в файле присутсвуют другие строчки так же разделённые пробелами, соотвественно они так же присваеваются переменным. Как этого избежать? Как я понял мне нужны строки начинающиеся с пробела и чтобы вторым символом была цифра. Как мне их так отфильтровать? Или есть другие пути решения? Вообщем просветите, ибо начинающий...
|