Mailinglist Archive: opensuse-de (4938 mails)

< Previous Next >
Re: &quot; &quot; durch &quot;_&quot; ersetzen
  • From: David@xxxxxxxxxx (David Haller)
  • Date: Sun May 28 22:05:38 2000
  • Message-id: <XFMail.000529000538.David@xxxxxxxxxx>



Hallo,

Eilert Brinkmann wrote:
Andreas Bunge <andreas.bunge@xxxxxxxxxxxxxxxx> 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@xxxxxxxxxx www: www.dhaller.de

---------------------------------------------------------------------
To unsubscribe, e-mail: suse-linux-unsubscribe@xxxxxxxx
For additional commands, e-mail: suse-linux-help@xxxxxxxx


< Previous Next >
References