2016-04-20 4 views
0

Hallo, Ich habe meine Config-Datei, wo ich unten einige Tags zwischen zwei Tags als Show hinzufügen habenHinzufügen einiger Tags zwischen einem bestimmten Tag das Öffnen und Schließen in Linux

<blacklist> 


</blacklist> 

Ich brauche ein paar andere Tags dazwischen hinzufügen diese zwei Tags wie unten

<blacklist> 
<blacklistEntry> 
<groupNames>A,B,C<\/groupNames> 
<errorCode>0222<\/errorCode> 
</blacklistEntry> 
</blacklist> 

Ich versuchte mit sed, aber nicht in der Lage, dies zu erreichen. Bitte helfen Sie dabei

+0

nicht XML analysieren Sie mit 'sed'. Verwenden Sie stattdessen einen XML-Parser. Was hast du bisher auch versucht? – fedorqui

+0

Ich soll dies mit sed tun, um ein Szenario in der Automatisierung nach dem Ändern der Konfigurationsdatei zu testen. die unter sed -i 's// abc <\/Gruppennamen>/<\/blacklistEntry>/d' path/config/webapp.xml – Mallik

+0

Ich habe versucht, aber es gibt mir – Mallik

Antwort

0

sed -i 's/<blacklist>/<blacklist>\n<blacklistEntry>\n<groupNames>A\,B\,C<\/groupNames>\n<errorCode>0222<\/errorCode>\n<\/blacklistEntry>/g' file.xml

+0

Dank 7171u hat es funktioniert :) – Mallik

0

Hier ist ein Sed-Programm, das was Sie wollen. Kopieren Sie es in eine Datei, sagen myprog.sed:

#!/usr/bin/env sed -f 

/<blacklist>/a \ 
<blacklistEntry>\ 
<groupNames>A,B,C<\/groupNames>\ 
<errorCode>0222<\/errorCode>\ 
</blacklistEntry> 

es dann laufen:

chmod +x myprog.sed 
./myprog.sed myinput.xml 
+0

Hallo John danke für die Antwort kann ich es als eine einzige Zeile Befehl anstelle einer Skriptdatei haben. – Mallik

Verwandte Themen