我有一个perl脚本,用于解析wtmp文件,将所有用户的时间添加到一起,并删除错误的数据。这个脚本在我最新的/最新的系统上运行得非常好。然而,我有一个较老的系统,一个Sparc 3000运行Solaris 8我相信。这东西比你知道的更让我头疼。所以,我试着让我的用户及时登录,并将输出格式化如下-
bbarret8 316
cchang5 703
ccomanes 2267
ckeefe 24
cmeyer7 82
dbabbini 140我使用的perl脚本在这里http://pastebin.com/ayN1yMJU
我的输入是这样的(还有更多的条目)-
lwoods4 console :0 Mon Dec 30 14:08 - 14:22 (00:14)
dhesek console :0 Mon Dec 30 09:51 - 09:53 (00:01)
lwoods4 console :0 Sun Dec 29 15:06 - 15:16 (00:09)
dhesek console :0 Sun Dec 29 09:26 - 09:30 (00:04)
dhesek console :0 Fri Dec 27 16:15 - 16:17 (00:01)
ylin7 console :0 Fri Dec 27 15:24 - 16:04 (00:40)
lwoods4 console :0 Fri Dec 27 14:11 - 14:25 (00:13)
lwoods4 console :0 Fri Dec 27 11:18 - 11:35 (00:17)
dhesek console :0 Thu Dec 26 13:21 - 14:38 (01:16)
dhesek console :0 Wed Dec 25 14:20 - 14:23 (00:02)
sbrown3 console :0 Tue Dec 24 14:40 - 14:53 (00:12)
dhesek console :0 Tue Dec 24 09:21 - 09:25 (00:04)
sbrown3 console :0 Mon Dec 23 11:20 - 12:20 (00:59)
ylin7 console :0 Sun Dec 22 21:44 - 22:00 (00:16)
sbrown3 console :0 Sat Dec 21 15:05 - 16:18 (01:12)
kwatson2 console :0 Fri Dec 20 18:41 - 19:03 (00:22)我的输出-
# ./Varian.wtmp.last.pl
0 1
jvail1 19
kwatson2 22
mm 1
nmrext0 21这是因为脚本正在调用当前系统上的“最后”命令来解析来自Solaris系统的输出文件吗?在我看来它们是一样的,但也许它们不是。任何帮助都是非常感谢的!
发布于 2014-01-02 17:10:06
看到这两项产出将是有帮助的。检查匹配的+,这是可选的,现在(当解析天)。
use strict;
use warnings;
my %TIMES;
while (<DATA>) {
if (my($name,$days,$hours,$mins) = /^(\w+).+\((?:(\d+)\+?)?(\d+):(\d+)/) {
# '+' is optional __^
$TIMES{$name} += 1440 * $days + 60 * $hours + $mins;
}
}
foreach (sort keys %TIMES) {
print "$_ $TIMES{$_}\n";
}
__DATA__
lwoods4 console :0 Mon Dec 30 14:08 - 14:22 (00:14)
dhesek console :0 Mon Dec 30 09:51 - 09:53 (00:01)
lwoods4 console :0 Sun Dec 29 15:06 - 15:16 (00:09)
dhesek console :0 Sun Dec 29 09:26 - 09:30 (00:04)
dhesek console :0 Fri Dec 27 16:15 - 16:17 (00:01)
ylin7 console :0 Fri Dec 27 15:24 - 16:04 (00:40)
lwoods4 console :0 Fri Dec 27 14:11 - 14:25 (00:13)
lwoods4 console :0 Fri Dec 27 11:18 - 11:35 (00:17)
dhesek console :0 Thu Dec 26 13:21 - 14:38 (01:16)
dhesek console :0 Wed Dec 25 14:20 - 14:23 (00:02)
sbrown3 console :0 Tue Dec 24 14:40 - 14:53 (00:12)
dhesek console :0 Tue Dec 24 09:21 - 09:25 (00:04)
sbrown3 console :0 Mon Dec 23 11:20 - 12:20 (00:59)
ylin7 console :0 Sun Dec 22 21:44 - 22:00 (00:16)
sbrown3 console :0 Sat Dec 21 15:05 - 16:18 (01:12)
kwatson2 console :0 Fri Dec 20 18:41 - 19:03 (00:22)输出
dhesek 88
kwatson2 22
lwoods4 53
sbrown3 143
ylin7 56https://stackoverflow.com/questions/20887497
复制相似问题