On Die, 07 Aug 2001, Jan Trippler wrote:
On Die, 07 Aug 2001 at 05:53 (+0200), Bernd Brodesser wrote: [wieder mal groß nach klein] Getestet? Ich habe mir aus Interesse mal ein Verzeichnis aufgebaut mit lauter krummen Dateinamen (inkl. Umlaute, Leerzeichen, Zeilenende) und es klappt mitnichten: [..] Ich halte den Einsatz des sed an dieser Stelle für verkehrt. tr ist kürzer und in diesem Fall praktischer, weil es mit Zeichenklassen umgehen kann. Um eine Schleife wird man hier nicht drumrumkommen - es sei denn, man wendet perl an (siehe Davids Mail) oder man geht wie folgt vor:
Jep, aber das mit tr gefaellt auch mir besser! Meine perl-Loesung ist naemlich auch vom find Aufruf abhaengig ($1 (also `dirname $_`) darf nicht leer sein, find macht das, aber...)
x="`dirname "$*"`/`basename "$*" | tr "[:upper:] " "[:lower:]_"`" ^^?? ^?? ^?? \- Falle??? "$*" When the expansion occurs within double quotes, it expands to a single word with the value of each parameter separated by the first character of the IFS special variable. "$@" When the expansion occurs within double quotes, each parameter expands to a separate word. That is, "$@" is equivalent to "$1" "$2" ...
(Ich hab's jetzt noch nicht ganz nachvollzogen, daher bitte mit Vorsicht geniessen! :) Bei $* kann man aber wohl "wünderbar" an $IFS rummanipulieren, z.B.: OIFS="$IFS"; IFS="¶"; ...irgendwas...; IFS="$OIFS"; mit passenden Ersetzungen vorher/nachher ist einiges moeglich ;) Auch "IFS='\0' oder, wie hinterhaeltig, IFS='/', oder so waere ne (nette) Moeglichkeit... (alles nur spekulativ!) *Hach, macht die bash, oder ne aehnlich maechtige shell, nicht Spass?*
echo -ne "$x\000" ^^??
Da fehlt noch ein bisserl, oder?
BTW: Du kannst mehrere sed-Operationen einfach mit ; hintereinander hängen.
bzw. 'sed -e OP1 -e OP2 ... -e OPn', das ist ggfs. uebersichtlicher...
P.S.: Zeilenende in Dateinamen ist Sch***
Jup. Aber auch "!*?;:{}[]$" usw. koennen haesslich sein *eg* Aber wer solche Dateinamen anlegt, ist entweder am testen oder krank... *snigger* -dnh PS: Warum gibt ein: touch t\;rm\ \-rf\ \/ auch in diversen Variationen der "Esc-apaden" oder des Quotings nur die Ausgabe eines 'strerror(EISDIR)'??? *scnr* Nicht das ich das negativ finde... ;) -- Make sure that they know you know that they know you know. -- Mike Andrews on getting license keys by mail (from a certain Corp.)