#!/usr/bin/perl -w use strict; open (INVERT, ">/tmp/revertrename") or die "Can't open /tmp/revertrename: $!"; # Target is Armin Van Buuren - A State of Trance - Episode 477 - 2010-10-07.mp3 while (my $i = shift @ARGV) { $i =~ m#^(.*?)/?([^/]+)$#; my ($dir,$file) = ($1, $2); $dir.="/" if $dir; $file =~ s/^A.*\D(\d\d\d)\D.*(\d\d)-(\d\d)-(\d\d\d\d).*/Armin Van Buuren - A State of Trance - Episode $1 - $4-$3-$2.mp3/i; $file =~ s/^A.*\D(\d\d\d)\D.*(\d\d\d\d)-(\d\d)-(\d\d).*/Armin Van Buuren - A State of Trance - Episode $1 - $2-$3-$4.mp3/i; my $j = "$dir$file"; if ($i ne $j) { #print "Going from $i \n"; print "to $j\n"; rename($i,$j); print INVERT "/bin/mv \"$j\" \"$i\"\n"; } else { print "$i will be left unchanged\n"; } }