34 lines
708 B
Perl
34 lines
708 B
Perl
#!/usr/bin/env perl
|
|
|
|
use v5.18;
|
|
use Data::Dumper;
|
|
|
|
opendir my $dh, '.';
|
|
my @files = readdir $dh;
|
|
closedir $dh;
|
|
|
|
for my $file (@files){
|
|
my %bag;
|
|
next unless $file =~ m/\.mp3$/i;
|
|
my $id3out = `id3 "$file"`;
|
|
for (split "\n", $id3out){
|
|
if(m/Track\: (\d+)/){
|
|
$bag{'track'} = $1;
|
|
$bag{'track'} =~ s/^(\d)$/0\1/;
|
|
};
|
|
if(m/Title\: (.+)/){$bag{'title'} = $1;
|
|
$bag{'title'} =~ s/\s*$//;
|
|
$bag{'title'} =~ tr/ /_/;
|
|
$bag{'title'} =~ tr/(/-/;
|
|
$bag{'title'} =~ tr/)//;
|
|
$bag{'title'} =~ s/\//_a.k.a._/g;
|
|
};
|
|
}
|
|
next unless defined $bag{'track'} && defined $bag{'title'};
|
|
my $newfile = sprintf "%s-%s.mp3",
|
|
$bag{'track'},
|
|
$bag{'title'}
|
|
;
|
|
printf "mv \"%s\" \"%s\"\n", $file, $newfile;
|
|
}
|