#!/usr/bin/perl use strict; use warnings; use Getopt::Long; use Date::Calc qw(:all); my $input_file = undef; GetOptions ( "input=s" => \$input_file, ); open INPUT, $input_file or die "Can't open $input_file for input: $!"; my @files = undef; #list of files to run script on while(my $line = ){ chomp($line); push @files, $line; } for(my $i=1; $i < scalar @files; $i++) { if(-e $files[$i]){ open IN, "gunzip -c $files[$i]|" or die "Can't open $files[$i] for input: $!"; open OUT, "> $files[$i]_out.txt" or die "Can't open $files[$i]_out.txt for output: $!"; my $firstline = 1; my @dt = undef; # date and time my @date1 = undef; my @date2 = undef; if($firstline==1){ #extract header line and get start and end date from line chomp(my $line = ); my @header = split(/,/, $line); @dt= $header[0] =~ /(\d+)/g; @date1 = ($dt[0], $dt[1], $dt[2], $dt[3], $dt[4], $dt[5]); @date2 = ($dt[6], $dt[7], $dt[8], $dt[9], $dt[10], $dt[11]); $firstline = 0; } else { for 1..1 } print OUT "Date\tTime\tDay\tmg\n"; #print title my $count = 0; while(my $line1 = ){ #whilst reading file get 12 lines and print time and print average of 12 lines chomp($line1); my @mg1 = split(/,/, $line1); my $line2 = ; chomp($line2); my @mg2 = split(/,/, $line2); my $line3 = ; chomp($line3); my @mg3 = split(/,/, $line3); my $line4 = ; chomp($line4); my @mg4 = split(/,/, $line4); my $line5 = ; chomp($line5); my @mg5 = split(/,/, $line5); my $line6 = ; chomp($line6); my @mg6 = split(/,/, $line6); my $line7 = ; chomp($line7); my @mg7 = split(/,/, $line7); my $line8 = ; chomp($line8); my @mg8 = split(/,/, $line8); my $line9 = ; chomp($line9); my @mg9 = split(/,/, $line9); my $line10 = ; chomp($line10); my @mg10 = split(/,/, $line10); my $line11 = ; chomp($line11); my @mg11 = split(/,/, $line11); my $line12 = ; chomp($line12); my @mg12 = split(/,/, $line12); my ($y, $mo, $d, $h, $m, $s) = Add_Delta_DHMS(@date1, 0, 0, $count, 0); printf OUT qq(%d-%02d-%02d %02d:%02d:%02d), $y, $mo, $d, $h, $m, $s; print OUT "\t" . Day_of_Week($y, $mo, $d); print OUT "\t" . (($mg1[0]+$mg2[0]+$mg3[0]+$mg4[0]+$mg5[0]+$mg6[0]+$mg7[0]+$mg8[0]+$mg9[0]+$mg10[0]+$mg11[0]+$mg12[0])/12) . "\n"; $count +=1 } close IN; close OUT } }