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

    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. Netzwerkproblem ? , wo ud wie suchen

    Netzwerkproblem ? , wo ud wie suchen: Hallo Folgende Problem: Testserver ist i686 Debian-unstable , auf dem läuft primär der apt-proxy apt-cahcer ng. Zugriff im Moment nur per ssh....
  2. Verständnisproblem Samba / LDAP

    Verständnisproblem Samba / LDAP: Hallo zusammen! Ich habe unter Ubuntu 16.04 einen LDAP und Samba Server aufgesetzt. Diese scheinen auch ordnungsgemäß zu funktionieren, sodaß ich...
  3. nginx+php-fpm problem

    nginx+php-fpm problem: Moin, ich hab hier gerade ein Problem und keine Idee mehr woran es liegt. Ich muss wie schon in der Überschrift erwähnt nginx dazu bringen php...
  4. Problem mit Windows auf Ordner auf dem Linuxsystem zuzugreifen

    Problem mit Windows auf Ordner auf dem Linuxsystem zuzugreifen: Ich mache gerade meine ersten Schritte mit Linux und würde gerne auf Dateien meines Linuxsystems auch mit Windows zugreifen, ich bin am...
  5. Virtualboxproblem

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