use String::ShellQuote use Cwd; unless ($ARGV[0]) { $dir = getcwd; } else { $dir = $ARGV[0]; } unless ($dir =~ /[\/]$/) { $dir .= "/"; } opendir (DIR, $dir) or die $!; my @arquivos = grep /\.mp3$/i, readdir DIR; foreach my $mp3file (@arquivos) { $new_name = $mp3file; $new_name =~ s/\s+/_/g; $new_name =~ s/_-_/-/g; $new_name =~ s/^[-_]+//; $new_name =~ s/&/and/g; # & becomes "and" $new_name =~ s/[\(\)\[\]]+/_/g; # () and [] become _ $new_name =~ s/,/_/g; $new_name =~ s/[\'\"]+/_/g; # no quotes $new_name =~ s/\`+/_/g; $new_name =~ s/_+/_/g; $new_name =~ s/-+/-/g; $new_name = lc $new_name; # lowercase if ($new_name ne $mp3file) { $dir = shell_quote ($dir); $mp3file = shell_quote ($mp3file); $new_name = shell_quote ($new_name); system "mv $dir$mp3file $dir$new_name"; print "\n$mp3file became $new_name"; } } closedir DIR;
In reply to rigthmp3names by zehzinho
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |