2016-11-28 7 views
0

SEDを使用してXMLファイルから行を削除しようとしています。すなわちsed -i "/Mansing/d" /home/test.xmlですが、リソース名の値のように 'Mansing'を持つ行と 'MansingTest'を持つ行の両方を削除します。どんな助け? XMLファイルには、この構文固定file.xmlbashスクリプトを使用してXMLファイルから行を削除します。

<a> 
    <Resource name="Mansing" auth="container" url="jdbc:mysql:" /> 
    <Resource name="MansingTest" auth="container" url="jdbc:mysql:" /> 
    <c> 
     <Test>tterer</Test> 
    </c> 
</a> 

とxmlstarletで

<a> <Resource name="Mansing" auth="container" url="jdbc:mysql:"" /> <Resource name="MansingTest" auth="container" url="jdbc:mysql:"" /> <c> <Test>tterer</test> </c> </a>

+2

適切な使用は、 '' xmlstarlet'なく鈍いテキスト処理ツールのような対応ツールをxml'。 – Inian

+0

検索正規表現を '/ \" Mansing \ "/'に変更するのを止めているのは何ですか?しかし、@Inianには有効な点があります。ジョブに適切なツールを使用してください。 –

+0

私はあなたの助けに同意し、感謝します。 xmlstarletは私の最後では動作しませんが、マシン上でどのモジュールが必要かを知ります。ありがとうございました –

答えて

1

以下の通りです。

xmlstarlet ed -d '//a/Resource[@name="Mansing"]' file.xml 

出力:

<?xml version="1.0"?> 
<a> 
    <Resource name="MansingTest" auth="container" url="jdbc:mysql:"/> 
    <c> 
    <Test>tterer</Test> 
    </c> 
</a> 
0
sed "/\<Mansing\>/d" filename 
関連する問題