www.mikrocontroller.net

Forum: PC-Programmierung [Linux] tr funktioniert in Script nicht


Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

echo $rawwochentagk

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

echo $rawwochentagk > t1
echo $wochentagk > t2

echo Wochentag Konrolle:
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

Autor: Stefan L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuchs mal mit:
echo Wochentag Konrolle:
echo -e "$wochentagk"

Stefan.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jaa, besten Dank Stefan!
Wie kann man nur so blind sein...

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hc Zimmerer

Genau, besten Dank :)

Autor: Name (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuchs mal mit
echo Wochentag Kon t rolle:
...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.