Since your using ksh88, This is another way you can get what you want:
Perl script:
#!/usr/bin/perl -w
use POSIX;
use strict;
use warnings;
my $rc; # Read count
my @r; # Record fields
my @ts; # Time stamp fields
my @sts; # Save of start timestamp
my ( $sec, $min, $hour, $day, $mon, $year, $wday, $yday );
my $ut_str_time; # Start timestamp in unix time
my $ut_end_time; # End timestamp in unix time
my $diff; # Difference in seconds
my $dstr; # Difference in format: hh:mm:ss
open ( INFILE, "<t") or die ("***Error- Couldn't open file: t, $!\n");
while ( <INFILE> ) {
$rc++;
chomp;
@r = split((','),$_);
@ts = split((':|/| '),$r[0]);
if ( $rc == 1 ) {
@sts = @ts;
} else {
$ut_end_time = mktime( $ts[5], $ts[4], $ts[3], $ts[1], ($ts[0]-1), ($ts[2]-1900), 0, 0 );
$ut_str_time = mktime( $sts[5], $sts[4], $sts[3], $sts[1], ($sts[0]-1), ($sts[2]-1900), 0, 0 );
$diff = $ut_end_time - $ut_str_time;
$dstr = POSIX::strftime("%H:%M:%S",$diff,0,0,0,0,0,0,0,0);
print "$ts[0]/$ts[1]/$ts[2] $ts[3]:$ts[5]:$ts[4],$sts[0]/$sts[1]/$sts[2] $sts[3]:$sts[5]:$sts[4],$dstr,$r[1]\n";
$rc = 0;
}
}
$ cat t
08/23/2012 12:36:09,JOB_5340
08/23/2012 12:36:14,JOB_5340
08/23/2012 12:36:22,JOB_5350
08/23/2012 12:36:26,JOB_5350
$ test.pl
08/23/2012 12:14:36,08/23/2012 12:09:36,00:00:05,JOB_5340
08/23/2012 12:26:36,08/23/2012 12:22:36,00:00:04,JOB_5350