1
我是sed的新手,無法通過某些XML代碼查找和替換XML標記之間的多行XML代碼。下面是XML代碼使用sed替換XML多行標記中的文本
<List>
<User>
<Id>1234</Id>
<Info>
<Id>11</Id>
</Info>
</User>
</List>
我要替換列表標籤成爲之間的XML代碼..
<List>
<Replace>
<Id> 223 <Id>
</Replace>
</List>
我用 sed "s/\(<Id>\).*\(<\/Id\)/\19999\2/" input.xml > output.xml
但其單線工作,但不是多線樣本。 List標籤之間的內容可能會改變,也可能是內聯的,所以不能根據特定的模式進行回覆,但只需要依賴標籤。任何幫助或指針將不勝感激?
不使用正則表達式來分析xml。看到這篇文章http://stackoverflow.com/questions/9200462/simplest-way-to-do-basic-xml-parsing-from-unix-command-line – Lynch
在bash/awk中處理XML不是最好的(即最強大/最安全)的方式,但可能爲個人/調試目的提供快速和骯髒的解決方案。所以,你可能會考慮這些Q/As:[SO:使用來自源文件的數據從XML文件中獲取塊](http://stackoverflow.com/questions/43642559/get-a-block-from-an- xml-file-using-data-from-a-source-file/43704602?s = 1 | 0.0000#43704602),[SO:Shell腳本 - 將xml分成多個文件](http://stackoverflow.com/questions/ 42625786 /殼腳本系分割XML - 到 - 多文件/ 42626222 S = 6 |?0.0000#42626222)。 – Scheff