总结了用户登录perl的“天+小时:分钟”的总数

时间:2014-01-28 08:42:26

标签: regex perl

我在下面有一个示例日志

user02|(1+08:12)
user01|(00:00)
user01|(08:55)
user01|(2+09:13)
user02|(2+10:31)
user01|(04:25)
user01|(07:59)
user01|(07:59)
user01|(08:45)
user01|(00:10)
user02|(09:11)
user01|(04:49)
user01|(-7:-59)
user02|(-1:-31)

我想为每个不同的用户添加所有时间: 输出应该是总时间格式天+小时:分钟: 样本输出:

user01 4+13:12
user02 2:09

我希望你们能提前帮我解决这个问题!

1 个答案:

答案 0 :(得分:2)

由于我理解这是出于教育目的,我将给你一个部分解决方案:

#!/usr/bin/perl

use strict;
use warnings;

my @log = ( 'user02|(1+08:12)',
'user01|(00:00)',
'user01|(08:55)', ... # supposing you loaded your data into an array

my %hash = (); # using an empty hash

foreach my $line (@log) { # iteranting each line
  $line =~ /^(user\d+)/; # searching for "userXXXX" pattern
  my $user = $1; # assigning matched value to $user

  # figure out how to act on $hash{ $user } :)
}

通用外观here了解如何使用 Date :: Calc ,然后将注意力集中在包含 Delta 的函数名称上。

我希望你能从这开始学习和理解新的东西。

不要忘记发布解决方案;)