#!/usr/bin/perl # chops the log file up into separate user files. # Author: Ian Hickman use strict; my (@file, @field, $lastuser, $thisuser); my $filename=0; my $filepointer=0; $_=; @field=split; $lastuser=$field[0]; $file[$filepointer++]=$_; # loop through all lines while( ){ @field=split; # if same user session if( $field[0] eq $lastuser ){ # update file $file[$filepointer++]=$_; } else { # else user has finished session writeuser(); print STDERR "."; $lastuser=$field[0]; $filepointer=0; $filename++; $file[$filepointer++]=$_; } } sub writeuser{ open( USERFILE, "> users/u" . $filename ) || die "Cant open $filename for writing: $!"; my $i; for( $i=0; $i<$filepointer; $i++ ){ print USERFILE $file[$i]; } close( USERFILE ) || die "Cant close $filename: $!"; }