#!/usr/bin/perl -w use warnings; use strict; my (%log); while () { my @fields = split ' '; if ($fields[8] =~ /(\d+):(\d+)/) { my $t = $1 * 60 + $2; $log{"$fields[3] $fields[4]"} += $t; } } for my $day (sort keys %log) { printf "%s workstation was in use for %.1f hours\n", $day, $log{$day}/60.0; } __DATA__ root :0 Fri Apr 7 06:00 - 03:00 (08:00) user :0 Thu Apr 6 03:00 - 23:00 (08:00) root :0 Thu Apr 6 06:00 - 03:00 (08:00) root :0 Wed Apr 5 06:00 - 03:00 (08:00)