SED - Hochkommar und Umlaute

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von p4tr1ck, 13.03.2011.

  1. #1 p4tr1ck, 13.03.2011
    p4tr1ck

    p4tr1ck Grünschnabel

    Dabei seit:
    13.03.2011
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo,

    erst mal ein Lob an das Forum, was mir bei einigen Themen schon weiter helfen konnte.

    Ich habe folgendes Problem:

    Ich habe ein SED Kommando, was in XML Dateien (Zeile 16) verschiedene Texte einfügt:

    cat /home/xml/12345.xml | sed '16i<text><![CDATA[Hello World]]></text>'

    Das Funktioniert auch wunderbar.
    Allerdings wenn Hochkommar (') oder Umlaute dazu kommen, funktioniert es nicht mehr bzw. es kommen komische Zeichen raus. Beim Hochkommar ist es klar, da das Kommando dann mittendrin unterbrochen wird. Ich habe schon versucht, die Hochkommar durch Backslash zu ignorieren, funktioniert aber nicht :(

    Hat jemand ein Tipp für mich, wie ich das SED Kommando anpassen muss, dass Hochkommar (') und Umlaute richtig übernommen werden.

    Danke

    Grüße
    Patrick
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Versuch doch mal, 'cat' zu vermeiden:
    Code:
    sed '16i<text><![CDATA[Hello World]]></text>' /home/xml/12345.xml 
    Dann duerfte der Inhalt der Datei direkt von sed und nicht mehr von der shell interpretiert werden.
     
  4. #3 p4tr1ck, 14.03.2011
    p4tr1ck

    p4tr1ck Grünschnabel

    Dabei seit:
    13.03.2011
    Beiträge:
    5
    Zustimmungen:
    0
    Danke für deine Antwort.

    Habe nun folgendes gemacht:
    sed '16i<text><![CDATA[Hello Wöäürld]]></text>' /home/xml/12345.xml >> /tmp/12345.xml

    Ergebnis:
    <text><![CDATA[Hello W���rld]]></text>
    Im Texteditor sind die Fragezeichen => Vierecke.

    Wenn ein Hochkommar im CDATA ist, muss ich davor ein backslash setzen?

    Grüße
    Patrick
     
  5. Akendo

    Akendo 4k3nd0

    Dabei seit:
    05.02.2008
    Beiträge:
    396
    Zustimmungen:
    0
    Was für ein Editor benutzte du denn? Sieht nach einem Encoding Problem aus, das er nicht mit den Deutschen Umlauten umgehen kann. Hast du auch schon versucht diese in der Bash mittles cat (ja nun wieder cat) dir anzeigen zu lassen?
    Was sagt dir denn ein
    Code:
    locale
    so far
    MFG 4k3nd0
     
  6. #5 p4tr1ck, 14.03.2011
    p4tr1ck

    p4tr1ck Grünschnabel

    Dabei seit:
    13.03.2011
    Beiträge:
    5
    Zustimmungen:
    0
    # locale
    LANG=de_DE.UTF-8
    LC_CTYPE="de_DE.UTF-8"
    LC_NUMERIC="de_DE.UTF-8"
    LC_TIME="de_DE.UTF-8"
    LC_COLLATE="de_DE.UTF-8"
    LC_MONETARY="de_DE.UTF-8"
    LC_MESSAGES="de_DE.UTF-8"
    LC_PAPER="de_DE.UTF-8"
    LC_NAME="de_DE.UTF-8"
    LC_ADDRESS="de_DE.UTF-8"
    LC_TELEPHONE="de_DE.UTF-8"
    LC_MEASUREMENT="de_DE.UTF-8"
    LC_IDENTIFICATION="de_DE.UTF-8"

    Editor: Notepad++
    Direkt in der Shell wird es auch so dargestellt.
     
  7. #6 p4tr1ck, 15.03.2011
    p4tr1ck

    p4tr1ck Grünschnabel

    Dabei seit:
    13.03.2011
    Beiträge:
    5
    Zustimmungen:
    0
    Keiner mehr eine Idee:(?
     
  8. zst

    zst Foren As

    Dabei seit:
    06.09.2006
    Beiträge:
    95
    Zustimmungen:
    0
    Vielleicht ist die Ausgangsdatei ja schon anders kodiert.
    Was sagt denn:
    Code:
    file /home/xml/12345.xml
    file /tmp/12345.xml
    
    Und was bedeutet "direkt in der Shell"? cat / less / more ???
    Gruß zst
     
  9. #8 p4tr1ck, 16.03.2011
    p4tr1ck

    p4tr1ck Grünschnabel

    Dabei seit:
    13.03.2011
    Beiträge:
    5
    Zustimmungen:
    0
    file /home/xml/12345.xml - 12345.xml: XML document text
    file /tmp/12345.xml - 12345.xml: XML document text

    Auf der Shell meine ich z.B. mit "nano".

    Wenn ich den Text mit Umlauten manuell einfüge, ist der Text OK.
    Wenn ich es automatisch mit SED mache, kommt mist raus und die Hochkomma mit einem Backslash ignorieren zu lassen, funktioniert auch nicht.
     
  10. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  11. #9 Aqualung, 16.03.2011
    Aqualung

    Aqualung Routinier

    Dabei seit:
    12.02.2008
    Beiträge:
    404
    Zustimmungen:
    0
    Code:
    sed   [COLOR="red"]"[/COLOR]16i\<text\>\<\!\[CDATA\[\'Hello World\'\]\]\>\<\/text\>[COLOR="red"]"[/COLOR]  /tmp/12345.xml
    
     
  12. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    In was fuer einer Umgebung arbeitest Du, wenn Du notepad++ benutzt - Cygwin unter Windows oder so? Vielleicht liegt es ja daran. Was ist denn die Version von sed, also die Ausgabe von
    Code:
     sed --version
    Unter Debian stable funktioniert das ganze recht prima. Ansonsten kannst Du auch mal versuchen, Deine Sprache auf C zu setzen:
    Code:
     export LC_ALL="C"
    Manchmal hilft das auch.
     
Thema:

SED - Hochkommar und Umlaute

Die Seite wird geladen...

SED - Hochkommar und Umlaute - Ähnliche Themen

  1. Umlaute Filtern

    Umlaute Filtern: Hi zusammen, bin recht neu was UNIX Skripten angeht und hänge gerade bei etwas fest. Ich möchte eine Datei erstellen in welche ein Befehl kommt....
  2. Umlaute mit Grafiktool

    Umlaute mit Grafiktool: Halli, ich moechte gern ein Tool bzw eine Anwendung, mit der ich die Umlaute mit Klicks einfuegen kann. Distribution ist Knoppix.
  3. Umlaute (ö,ä,ü) trotz UTF-8 falsch dargestellt auf Red Hat 6.3 Santiago

    Umlaute (ö,ä,ü) trotz UTF-8 falsch dargestellt auf Red Hat 6.3 Santiago: Hallo zusammen:-) Ich lese mit einem PERL-Script auf einem Linux Redhat 6.3 Server Informationen aus einem Exchange-Kalender aus. Dies...
  4. OpenSuse 12.1 KDE 4.7.2 keine Umlaute mehr

    OpenSuse 12.1 KDE 4.7.2 keine Umlaute mehr: Hallo zusammen. Ich weiß, dass dieses Thema schon oft diskutiert wurde. Allerdings verstehe ich die Problematik nicht wirklich. Seit einem Update...
  5. Keine Umlaute in Textdateien

    Keine Umlaute in Textdateien: Hallo Allerseits, mag eine Anfängerfrage sein, aber ich finde keine einfache Lösung: Hier läuft ein englisch-installiertes Debian (Backtrack...