perl -MCPAN -e 'install HTML::Template'
Category Archives: PERL
PERL script to migrate / rename files
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"); } }