<===
2025-12-03 10:02:41
rename youtube labels cur dir
$ cat ren.pl
#!/usr/bin/env perl
use strict;
use warnings;
use File::Basename;
my @files = glob('*.mp3 *.m4a');
my %seen;
for my $old (@files) {
my ($name, $dir, $ext) = fileparse($old, qr/\.[^.]*/);
my $new = $name;
# чистка
$new =~ s/\s*\([^)]*\)\s*/ /g;
$new =~ s/\s*\[[^]]*\]\s*/ /g;
$new =~ s/ {2,}/ /g;
$new =~ s/^ //;
$new =~ s/ $//;
next if $new eq $name;
my $target = $new . $ext;
my $base = $new;
my $i = 1;
while (-e $target || $seen{$target}) {
$target = $base . "_" . $i . $ext;
$i++;
}
$seen{$target} = 1;
print "$old -> $target\n";
rename $old, $target or warn "cannot rename $old to $target: $!\n";
}