[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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.