2016-11-28 111 views
0

我想從使用SED的XML文件中刪除一行。即sed -i "/Mansing/d" /home/test.xml,但它將資源名稱值中的'Mansing'和'MansingTest'兩行刪除。任何幫助? XML文件是如下使用bash腳本從XML文件中刪除一行

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

+2

使用適當的'xml'像'xmlstarlet',而不是生硬的文字處理工具認識工具。 – Inian

+0

什麼阻止您將搜索正則表達式更改爲'/ \「Mansing \」/'?但@Inian有一個有效的觀點:使用適當的工具來完成這項工作。 –

+0

我同意並感謝您的幫助。雖然xmlstarlet在我的最後不起作用,但我會在機器上找出它需要的模塊。謝謝 –

回答

1

有了這個語法固定file.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。

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