PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : white space im Dateinamen


Hans-Georg Normann
25-04-2001, 22:10
Wie behandelt man white space im Dateinamen in einer shell?

Beispiel :
$VARIABLE=`echo "meine erste.mp3\
meine zweite.mp3"`

for DUMMY in $VARIABLE; do
echo $DUMMY
done


Dieses liefert:
meine
erste.mp3
meine
zweite.mp3

und nichtmeine erste.mp3
meine zweite.mp3


Hans

[ 25. April 2001: Beitrag editiert von: Hans-Georg Normann ]

micha
25-04-2001, 23:18
Hallole,

mir fällt auf anhieb nix ein, aber ne andere
Möglichkeit hätt ich dir, vielleicht reichts ja:

---------------------------------------
FILES="mein erstes.mp3 mein zweites.mp3"

for i in $FILES; do
if [ -z `echo $i | grep "mp3"` ]; then
echo -n "$i "
else
echo $i
fi
done

---------------------------------------

Funktionieren tuts, obs das ist was du willst is ne andere frage ;)

Gruß micha

jgbauman
26-04-2001, 00:27
Man setzt einen Backslash for das Leerzeichen.

micha
26-04-2001, 01:48
@jgbaumann
war des erste, was ich versucht hab:
funktioniert in ner for-schleife net...

Gruß micha

jgbauman
26-04-2001, 02:11
also:
for I in a\ b c\ d ; do echo "$I"; done
liefert:
a b
c d

Allerdings macht das echo in:
VARIABLE=`echo "meine\ ertse.mp3\ meine\ zweite.mp3"`
alles wieder kaputt.
Probier mal
VARIABLE="meine\ ertse.mp3 meine\ zweite.mp3"
oder auch
VARIABLE=`ls *.mp3 | sed -e"s/ /\\\\ /"`

bye

Manfred-B
26-04-2001, 23:19
Hallo
Die variable IFS (interal file separator) auf einen linefeed setzen.

oldifs=$IFS
IFS='
'
VARIABLE="meine erste.mp3
meine zweite.mp3"
for ...
;done

IFS=$oldifs
...


Grüsse

[ 26. April 2001: Beitrag editiert von: Manfred-B ]