Re: Leerstellen in Dateinamen
#include <hallo.h>
* Matthias Taube [Tue, Apr 18 2006, 09:59:50PM]:
> Klaus Becker schrieb:
>
> > Wie kann ich die Leerstellen durch underscores ("_") ersetzen und die
> > Leerstellen vor und nach dem Bindestrich rausschmeißen?
>
> Am besten mit Scripts.
> Ich habe mir eins geschrieben was aus ogg- und mp3 tags mir genehme
> Dateinamen erzeugt.
>
> Der entsprechende Filterteil im Perlscript sieht wie folgt aus:
>
> sub clean {
> my $ein = shift;
> unless ( defined $ein ) { $ein = "unknown" }
Args. Mein etwas radikaleres Skript sieht etwa so aus, und arbeitet
rekursiv... und beschränkt den Zeichensatz auf steinzeitliche
/[^a-zA-Z.\-_0-9]/:
#!/usr/bin/perl
$doit=($ARGV[0] eq "-y");
use Cwd;
sub explore {
my $where=getcwd;
my $dir=$_[0];
chdir $dir;
opendir(DIR, ".") || die "Could not open $dir\n";
my @stuff=readdir(DIR);
for my $f (@stuff) {
next if ($f eq "." || $f eq "..");
if(-d $f) {
explore($f);
}
$g=$f;
$g=~s/[^a-zA-Z.\-_0-9]/_/g;
if($f ne $g)
{
print "$where/$dir/$f -> $g\n";
if($doit) {
rename($f, $g) || die "Problem renaming :-( - $!";
}
}
}
chdir $where;
}
explore(".");
print "Use -y to apply listed changes...\n" if(!$doit);
Reply to: