2017-07-22 47 views
0

我需要用null替換下面的字符串。它基本上是一個xml文件,我想用unix命令省略xmnls部分。如何用unix命令替換xml文件中具有特殊字符的字符串

xmlns:stl="http://www.xxx.yy/1234/stl-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

我已經使用下面的命令嘗試:

perl -pi -e "s+xmlns:stl="http://www.xxx.yy/1234/stl-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"++" filename.xml 

sed 's+xmlns:stl="http://www.xxx.yy/1234/stl-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"++' filename.xml 

沒有工作搞好。 :( 請問專家們對這個應該怎麼處理的任何想法

PS:它具有字符串 值後標籤絡繹不絕xmlns:stl="http://www.xxx.yy/1234/stl-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"所以不能刪除線

+0

添加一個完整的樣品輸入線和輸出你你試過命令得到...也是,大概XML解析器像xmlstarlet會是更好的選擇比使用正則表達式 – Sundeep

+1

要編輯文件,請嘗試'-i'標誌:'sed -i'。 – SLePort

回答

1

sed線效果相當好,但是:

  1. 若要修改寫入結果到stdout到位的文件,使用sed -i
  2. 爲了讓預測的,你需要逃脫正則表達式特殊字符\,像這樣:

    sed -i 's+xmlns:stl="http://www\.xxx\.yy/1234/stl-1\.0" xmlns:xsi="http://www\.w3\.org/2001/XMLSchema-instance"++' filename.xml 
    
相關問題