0
Gegeben:löschen Linien zwischen zwei Spielen nach dritten inneren Muster sed Verwendung
<tagA/>
<tagB>...</tagB>
<setOfFoo>
<foo>...</foo>
<foo>
...some special content...
</foo>
<foo>...</foo>
<foo>...</foo>
</setOfFoo>
<tagN/>
Ich möchte nur den gesamten Knoten von foo entfernen, wenn bestimmten Inhalten hat, ich habe versucht, so etwas wie:
sed '/<foo>/,/special content/d;/special content/,/<\/foo>/d'
# or
sed '/<foo>/,/<\/foo>/{1,/special content/d;/special content/,$d}'
# or
sed '/<foo>/,/<\/foo>/{:a;N;ba;/special content/d}'
Aber keiner von denen funktioniert, keine Ahnung?
Nicht vergessen: andere foo
Tags sollten nicht gelöscht werden.
Verwenden Sie einen XML/HTML-Parser (xmllint, xmlstarlet ...). – Cyrus