#!/usr/bin/perl # interval_sum.pl - read in a file of {time value} entries and # print out the sum every interval # # Usage: interval_sum.pl [summing_interval_in_seconds] [starting_second] < file # # Michele C. Weigle, mweigle@cs.odu.edu # Old Dominion University, November 2006 $interval = 1; $start = 0; if ($#ARGV == 0) { $interval = $ARGV[0]; # summing interval in seconds $start = 0; } elsif ($#ARGV == 1) { $interval = $ARGV[0]; $start = $ARGV[1]; } $sum = 0; $end = $start + $interval; while () { ($time, $value) = split (" ", $_); if ($time < $end) { $sum += $value; } else { # time to print out last interval's sum while ($time >= $end) { printf ("%-.3f %-.3f %lf\n", $start, $end, $sum); $start += $interval; $end += $interval; $sum = 0; } $sum = $value; } } # print the final interval's sum printf ("%-.3f %-.3f %lf\n", $start, $end, $sum);