#! /usr/bin/perl use Time::Local; foreach $file ( @ARGV ){ @fields = stat $file; @times = gmtime( $fields[9] ); $times[4]++; $mon = ""; $day = ""; if( $file =~ /(sst)-(\d{2})(\d{2}).gif/ ){ $prefix = $1; $mon = $2; $day = $3; } elsif( $file =~ /(sst_anom)-(\d{2})(\d{2}).gif/ ){ $prefix = $1; $mon = $2; $day = $3; } if( $day ){ $fsecs = timegm( 0, $times[1], $times[2], $day, $mon-1, 98 ); @ftimes = gmtime( $fsecs ); if( $ftimes[6] != 1 ){ $fsecs = timegm( 0, $times[1], $times[2], $day, $mon-1, 99 ); @ftimes = gmtime( $fsecs ); } $fstr = scalar gmtime( $fsecs ); } print "File: $file - $times[5] $times[4] $times[3] - $times[6] - $mon $day - $fstr\n"; if( $day && $ftimes[6] == 1 ){ $nfile = sprintf( "%s-%2.2d%s%s.gif", $prefix, $ftimes[5]%100, $mon, $day ); print "exist\n" if( -e $nfile ); print "Rename $file to $nfile\n"; rename $file, $nfile; } }