2016-11-29 4 views
0

を考えるとsedを使用:削除行は

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}' 
:いくつかの具体的な内容を持っている場合にのみ

<tagA/> 
<tagB>...</tagB> 
<setOfFoo> 
    <foo>...</foo> 
    <foo> 
    ...some special content... 
    </foo> 
    <foo>...</foo> 
    <foo>...</foo> 
</setOfFoo> 
<tagN/> 

は私がfooのノード全体を削除したい、私のような何かをしようとしていました

しかし、これらのどれも効果がありませんでした。

注意:他のfooタグは削除しないでください。

+0

XML/HTMLパーサー(xmllint、xmlstarlet ...)を使用します。 – Cyrus

答えて

0

私はもう少ししようとしましたが、私は解決策を見つけた:

sed '/<foo>/,/special content/N;/special content/,/<\/foo>/d' 

私はまだコミュニティを助けるために質問を投稿しました。