|
各位好!
这有个perl程序,是对last的输出做统计,统计用户总的登录时间和次数,并按字母顺序排序,可为什么我得不要想要的结果?没有任何输出,请各位大虾帮忙看看,谢谢!
- #!/usr/bin/perl -w
- while (<>) {
- if (/^(\S*)\s*.*\((.*):(.*)\)$/) {
- $hours{$1} += $2;
- $minutes{$2} += $3;
- $logins{$1}++;
- }
- }
- foreach $user (sort (keys %hours)) {
- $hours{$user} += int ($minutes{$user} / 60);
- $minutes{$user} %= 60;
- print "User $user, total login time ";
- printf "%02d:%02d,", $hours{$user}, $minutes{$user};
- print "total logins $logins{$user}\n";
- }
复制代码
last 的输出样例:- jackie pts/1 192.168.2.105 Sat Feb 3 15:54 - 16:20 (00:25)
复制代码 |
|