[Linux] tr funktioniert in Script nicht

Gast #1706059
Lesenswert?

Hallo,

möchte in einem String die Leerzeichen durch LF ersetzen. In der Konsole 
funktioniert das auch prima, nur im Script nicht.
1
rawwochentagk="Montag|54 Dienstag|45 Mittwoch|60 Donnerstag|42 Freitag|34"
2

3
echo $rawwochentagk
4

5
wochentagk=$(echo $rawwochentagk | tr ' ' '\n')
6

7
echo $rawwochentagk > t1
8
echo $wochentagk > t2
9

10
echo Wochentag Konrolle:
11
echo -e $wochentagk

Habe mir die Dateien (t1, t2, nur zur Kontrolle) auch mal mit dem 
Hexeditor angeschaut, steht überall 0x20...

Hat jemand eine Idee??


Hab das unter cygwin und Ubuntu 10.04 probiert.

Gruß
Karl
#1706127
Lesenswert?

Wenn Du in sh eine Stringvariable unverändert haben willst, dann musst 
Du sie immer in doppelte Anführungszeichen einschließen.  Das schützt 
sie vor einer Verarbeitung, wie sie auf der Kommandozeile sinnvoll ist, 
u.a. dem Splitten in ihre Elemente überall dort, wo Whitespace ist (\n 
gehört da mit dazu).

Darüber  bist Du soeben gestolpert.  sh hat die Variable zerlegt und 
echo hat die einzelnen Elemente, mit 1 Space getrennt, wieder 
zusammengefügt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren