shell script 的regular expression - Linux

Table of Contents

請問版上大大一個case

今天我想將一個文字檔中的一行文字 取代成多行文字

又想只取代一次 請問sed有辦法這麼做嗎


如下 假設是一個xml檔

<aaa>
<name>ok</name>
<value>222</value>
</aaa>

<aaa>
<name>no</name>
<value>222</value>
</aaa>


假如我想將其中一個 </aaa>

取代成

</aaa>
<aaa>
<name>hi</name>
<value>222</value>
</aaa>

(也就是我想增加一筆資料)

請問sed有辦法這樣用嗎

感謝~~ 只取代一個似乎試不太出來= =


--

All Comments

Eartha avatarEartha2011-05-18
直接 >> filename ?
Odelette avatarOdelette2011-05-19
對 最後會輸出一個新檔 不過想不到sed指令該怎麼下= =
Frederica avatarFrederica2011-05-24
N=`wc -l < foo`; cat foo | eval "sed '${N}s/abc/xxx/'"
>>就是加到檔案尾了呀
Lydia avatarLydia2011-05-25
echo "asdf" >> filename.xml
Dorothy avatarDorothy2011-05-27
謝謝c大 因為檔案尾還有另一個標籤</bbb> 所以可能沒法直
Frederica avatarFrederica2011-05-28
接加 但倒是給了我另一個想法 因為</bbb>是唯一的 乾脆直
接搜尋取代</bbb>就好了 好笨竟然沒想到= =
Edwina avatarEdwina2011-05-30
問題解決了 感謝c大~ !