#!/usr/bin/perl -w
# revdate.pl - by dual
#
# Usage: perl revdate.pl
#
# Reverses MMDDYY dates in file
# names to ISO 8601 YYYYMMDD
use strict;
use File::Find;
# Get directory or provide assistance
print "Usage: perl revdate.pl \n" and exit
unless defined(my $dir = shift);
# Call reverse for each file
find(\&reverse, $dir);
# Reverse date here
sub reverse {
# Skip directories
if ( !(-d) ) {
if ( $_ =~ /(.*)(\d{6})(.*)/ ) {
# od = old_date
my @od = split(//, $2);
my $new_date = "20$od[4]$od[5]$od[0]$od[1]$od[2]$od[3]";
rename $_, "$1$new_date$3";
}
}
}