Thread Leerzeichen und Anderes aus Dateinamen entfernen
(22 answers)
Opened by rasidrasid at 2014-01-09 10:05 2014-01-09T09:22:10 GwenDragon Für so einfache Ersetzungen ist IMHO der Transliterationsoperator tr/// besser geeignet. Code (perl): (dl
)
1 2 3 my $name = "alles alles geht vorbei (ABCDE).mp3"; $name =~ tr/a-zA-Z0-9._//c; say $name; sollte "allesallesgehtvorbeiABCDE.mp3" ausgeben. Das c am Ende des tr///c bewirkt, dass die Suchliste invertiert wird. Du must also nur die Zeichen angeben, die im Filenamen bleiben sollen. Das ist meist einfacher und vollständiger als die Liste der Zeichen, die Du rausschmeissen willst. Alternativ kannst Du auch Code (perl): (dl
)
$name =~ tr/a-zA-Z0-9./_/cs; verwenden. Das ergibt dann "alles_alles_geht_vorbei_ABCDE_.mp3". Dabei wird dann jedes Zeichen, das nicht in Deiner Liste ist durch '_' ersetzt. Das abschließende 's' bewirkt, dass mehrere Ersetzungen hintereinander zu einem Zeichen zusammengefasst werden. Wenn Dich dann noch das '_' vor dem Punkt oder möglichen '_' am Anfang oder Ende stören, kannst Du die recht einfach mit Regex und s///entfernen. |