Moin, > #mungefilename () > #{ > # echo "$@" | sed s,:,\ -,g | tr \ / __ | tr -d \'\"\?\[:cntrl:\] > #} > > Nun meine konkreten Fragen dazu, Ihr sollt mir ja nicht den kompletten > Ausdruck basteln, das will ich schön selbst ausprobieren :-) > > "tr \ / __" verstehe ich inzwischen. Und habe ihn auf "tr / _" geändert.
das funktioniert ?! Also bei der ersten Variante "tr \ / __" wird ein Leerzeichen durch einen Unterstrich ersetzt. Eigentlich würde "tr \ / _" auch reichen. Bei "tr / _" wird ein Slash durch einen Unterstrich ersetzt. > Den letzten Teil hab ich etwas angepasst. Es bleibt "tr -d \[:cntrl:\]", > womit ich allerdings nicht allzu viel anfangen kann. Laut "man" sollte > das doch nur "tr -d [:cntrl:]" heissen? Ich weiss nicht wo da jetzt der > Unterschied liegt? -d = delete, also sollen alle dort "entwerteten" Zeichen (erkennbar am vorangestellten Backslash) gelöscht werden. > Was ganeu wird mit [:cntrl:] gelöscht, damit ich mal was testen kann? Sch... Office-PC ... schau mal unter "man perlre" und suche nach cntrl (hab keinen Bock das alles abzuschreiben) > Und nun zu "sed". Hier verstehe ich gar nichts :-) Brauche ich es denn > für meine Zwecke? (nur erlaubte Zeichen in Dateinamen) Ersetzt einen Doppelpunkt durch ein Leerzeichen gefolgt von einem Minus. Die Kommazeichen bilden die Begrenzungszeichen (auch s#:#\ _#g oder s/:/\ -/g). Ob du das brauchst, mußt du selbst entscheiden. Ciao Holger ---------------------------------------------------------------------------- PUG - Penguin User Group Wiesbaden - http://www.pug.org