Script to look in dir & get album name & create dir of album name then migrate files into dir & rename them Required File Name: ARTIST_-_ALBUM_-_TRACKNUM_-_TITLE.mp3
#!/usr/bin/perl
use Getopt::Long;
use File::Copy;
my $artist;
my $dir = "/mnt/music/sorted";
$result = GetOptions("artist=s" => $artist);
$dir = $dir . "/" . $artist;
opendir(my $dh, $dir) or die "Can't open $dir: $!";
if(!($artist)){
print ("ERROR!!! Must define artistn");
exit(1);
}
my @files = sort grep { -f "$dir/$_" } readdir($dh);
foreach(@files)
{
if($_ =~ /$artist_-_(.*)?_-_(d*)_-_(.*).mp3/)
{
$_ =~ /$artist_-_(.*)?_-_(d*)_-_(.*).mp3/;
my $album = $1;
my $tracknum = $2;
my $title = $3;
#print $album . " - " . $tracknum . " - " . $title . "n";
#print ($_ . "n");
my $albumdir = $dir . "/" . $album;
if(! -d $albumdir)
{
mkdir $albumdir;
}
my $new_file_name = $tracknum . "_-_" . $title . ".mp3";
#print("mv $dir/$_ $albumdir/$new_file_namen");
move("$dir/$_", "$albumdir/$new_file_name");
#chdir($albumdir);
#my $cmd = "rename -n s/^" . $artist . "_-_" . $album . "_-_// *";
#print(`$cmd` . "n");
#print($cmd . "n");
#chdir($dir);
}
else
{
print($_ . " DOES NOT MATCHn");
}
}