Re: Leerstellen in Dateinamen
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" }
my $aus = $ein;
chomp($aus);
my $decoder = guess_encoding( $aus, "iso-8859-1" );
if ( ref($decoder) ) { # decoder erkannt
Encode::from_to( $aus, "iso-8859-1", "utf8" );
}
$aus = lc($aus);
$aus =~ s/(ö|Ö)/oe/g;
$aus =~ s/(ä|Ä)/ae/g;
$aus =~ s/(ü|Ü)/ue/g;
$aus =~ s/ß/sz/g;
$aus =~ s/[^0-9a-z_\-]/_/g;
$aus =~ s/^\-/_/;
$aus =~ s/_+/_/g;
if ( length($aus) < 1 ) { $aus = "unknown"; }
return ($aus);
}
Du kannst natürlich auch ein Bash-Script nehmen:
filter()
{
VAR=`echo $1 | tr -c -d "a-zäöüßÄÖÜA-Z0-9+(),;_. -" \
| tr "[:upper:]äöüßÄÖÜ,;+. " "[:lower:]äöüßäöü_____" \
| sed -e 's/ä/ae/g' -e 's/ü/ue/g' -e 's/ö/oe/g' -e 's/ß/sz/g' \
| tr -s "_" | cut -c -30`
[ `echo "$VAR" | cut -c -1` = "_" ] && VAR=`echo "$VAR" | cut -c 2-`
echo "$VAR"
}
mfg
Matthias Taube
Reply to: