Hallo, Eilert Brinkmann wrote:
Andreas Bunge
wrote: Hallo, wie kann ich ls oder find dazu bringen, daß eine Ausgabe, die Leerzeichen enthält, als EIN Ausdruck angesehen wird? Das Problem ist, daß das Leerezichen anscheinend als Trennzeichen interpretiert wird.
find . | grep ' ' | \ while read i; do \ mv "$i" "`echo "$i" | sed 's/ /_/g'`" \ done
Das sollte evtl. besser: "`... | sed s/"\ "/"_"/g` heissen... Jedenfalls sollte IMHO das " " als "\ " maskiert werden... Teste auch mal: for file in "`ls -1A`"; do echo "${file// /_}"; done ^ ^ die " sind entscheidend, dass die Dateinamen in einer Zeile landen! ;) Das sollte so in etwa das sein was du suchst. Das "${file// /_}" macht genau dasselbe wie ein "echo $file | sed s/"\ "/_/", ist aber um einiges schneller (siehe den Thread "Problem mit sed/regex;;"). Getestet mit: === snip === dh@slarty[p7]:~/shelltest $ ls -1 Bla Bla Fasel Bla Fasel dh@slarty[p7]:~/shelltest $ for file in "`ls -1A`"; do echo "${file// /_}"; done Bla_Bla_Fasel Bla_Fasel === snap === CU David -- Who can possibly rule, if no one who wants to do it, can be allowed to? --- Douglas Adams, Hitchhiker's Guide to the Galaxy email: David@dhaller.de www: www.dhaller.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com