SED Problem mit XML

Dieses Thema im Forum "Anwendungen" wurde erstellt von LUK, 23.07.2011.

  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

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    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. Virtualboxproblem

    Virtualboxproblem: Hallo Folgnedes Problem: Ich kann ohne Probleme In Debian-Sid, 64Bit und virtualbox-dkms Unixoide installieren, wenn es sich um eine...
  2. grub-pc Probleme bei upgrade

    grub-pc Probleme bei upgrade: Hallo, ich habe beim dist-upgrade folgendes Problem: ---------- Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt. Trigger für...
  3. Problem bei apt-get upgrade (Kali 2.0)

    Problem bei apt-get upgrade (Kali 2.0): Hi, seit paar Tagen habe ich einige Probs. Dachte es sei mal an der Zeit für ein Update und nun tauchen da einige Fehler auf: Es müssen noch 0 B...
  4. Probleme mit YUM

    Probleme mit YUM: Hallo, ich habe CentOs 7 als Dualboot mit Windows 7 auf einen Dell Latitude E5510 installiert. Dies hat soweit auch alles geklappt. Leider habe...
  5. Problem mit Win-Zugriff auf SAMBA

    Problem mit Win-Zugriff auf SAMBA: Hallo rundherum, vielleicht hat jemand eine Idee... Habe jetzt schon 1 1/2 Tage damit verbraten und den Fehler nicht gefunden. Problem:...