Thread Leerzeichen und Anderes aus Dateinamen entfernen (22 answers)
Opened by rasidrasid at 2014-01-09 10:05

clms
 2014-01-09 13:36
#172914 #172914
User since
2010-08-29
373 Artikel
BenutzerIn
[default_avatar]
2014-01-09T09:22:10 GwenDragon
Das geht mit einem Regex und einer Zeichenklasse und dem Ersetzungsoperator s.

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.

View full thread Leerzeichen und Anderes aus Dateinamen entfernen