SED Problem mit XML

Diskutiere SED Problem mit XML im Anwendungen Forum im Bereich Linux/Unix Allgemein; Hallo, bitte um Hilfe - komme mit GNU SED einfach nicht weiter ... muss aber gehen. Mein Problem: Möchte den XML-Tagnamen ändern, (nur das...

  1. #1 LUK, 23.07.2011
    Zuletzt bearbeitet: 23.07.2011
    LUK

    LUK Grünschnabel

    Dabei seit:
    23.07.2011
    Beiträge:
    2
    Zustimmungen:
    0
    Hallo,
    bitte um Hilfe - komme mit GNU SED einfach nicht weiter ... muss aber gehen.
    Mein Problem:
    Möchte den XML-Tagnamen ändern, (nur das Endtag), das Anfangstag ist OK,
    leider steht das Endtag nicht immer in der gleichen Zeile wie das Anfangstag
    und die Abschnitte (<occ>) wiederholen sich und beinhalten die gleichen Anfagstagnamen.
    Das ist mein Problem:

    XML-Abschnitt:
    <table>
    <occ>
    <ufield_ulabel>ACCEPT</dat>
    <ufield_base>BASE</dat>
    </occ>

    <occ>
    <ufield_ulabel>ACCEPT .........
    </dat>
    <ufield_base>BASE ....
    </dat>
    </occ>

    <occ>
    <ufield_ulabel>ACCEPT .........
    ..................
    ..... viele Zeilen .,..
    .....
    </dat>
    <ufield_base>BASE
    ......
    </dat>
    </occ>
    </table>

    Gewünschte Änderung </dat> => wie der Anfangstag:
    -----------------------------------------
    <table>
    <occ>
    <ufield_ulabel>ACCEPT</ufield_ulabel>
    <ufield_base>BASE</ufield_base>
    </occ>

    <occ>
    <ufield_ulabel>ACCEPT .........
    </ufield_ulabel>
    <ufield_base>BASE ....
    </ufield_base>
    </occ>

    <occ>
    <ufield_ulabel>ACCEPT .........
    ..................
    </ufield_ulabel>
    <ufield_base>BASE ....
    ..........
    </ufield_base>
    </occ>
    </table>

    Folgende SED- Anweisungen verwende ich momentan (die auch funktionieren),
    leider nur wenn ich 1x <occ> .. </occ> in der Datei (ufield.xml) habe.

    sed -n "1h;1!H;${;g;/<ufield_ulabel>.*<\/dat>/s/<\/dat>/<\/ufield_ulabel>/;p;}" ufield.xml 1> temp.xml

    sed -n "1h;1!H;${;g;/<ufield_base>.*<\/dat>/s/<\/dat>/<\/ufield_base>/;p;}" temp.xml 1> ufield.xml

    Info: das /g vor dem ";p" bring hier nicht das gewünschte Ergebnis.
    Den Bereich <occ> .. </occ> heraus zu schneiden und es daruaf anzuwenden,
    wäre möglich, aber auch umständlich.

    Bitte um Vorschläge, nur für SED - Danke!
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. LUK

    LUK Grünschnabel

    Dabei seit:
    23.07.2011
    Beiträge:
    2
    Zustimmungen:
    0
    Hi,
    glaube die Lösung gefunden zu haben!

    sed -e "/<ufield_ulabel>.*/{:loop;N;/<\/dat>/!bloop;/<\/dat>/s/<\/dat>/<\/ufield_ulabel>/;}" ufield.xml 1> temp.xml
    sed -e "/<ufield_base>.*/{:loop;N;/<\/dat>/!bloop;/<\/dat>/s/<\/dat>/<\/ufield_base>/;}" temp.xml 1> ufield.xml

    Gruß!
     
Thema:

SED Problem mit XML

Die Seite wird geladen...

SED Problem mit XML - Ähnliche Themen

  1. Mageia 7.1 patcht Boot-Problem bei AMD Ryzen 3000 CPUs

    Mageia 7.1 patcht Boot-Problem bei AMD Ryzen 3000 CPUs: Mageia hat kurzfristig mit Version 7.1 ein Point-Release veröffentlicht, um einen Boot-Fehler mit AMDs Ryzen 3000 CPUs zu beheben, der einige...
  2. ip6tables Problem

    ip6tables Problem: Hallo zusammen, ich hab ein Problem kann aber keinen Fehler finden, äußert sich wie folgt, ich habe endlich für ein System in Netz eine IPv6...
  3. VDSL 50 FRITZBOX 7490 PROBLEM?

    VDSL 50 FRITZBOX 7490 PROBLEM?: Hallo ,ich besitze seit letzter Woche VDSL 50 also eine 50000er Leitung. Im Router wird mir allerdings unter "DSL Informationen" 109,34 Mbit/s...
  4. Problem mit SATA

    Problem mit SATA: Hallo zusammen Wo liegt hier das Problem? - Controller defekt? (LSI SAS3041X-L) - Festplatten defekt (Western Digital Green 1.5 TB)...
  5. Probleme mit WinSCP und Rechten

    Probleme mit WinSCP und Rechten: Hallo. Ich habe vor ein paar Tgen meinen ersten Ubuntu 16.04 vServer bei 1&1 bestellt, gemäß dem sicheren Umgang damit, habe ich erstmal den SSH...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden