2013-09-30 27 views
1

例如說我有這樣的一個文件中:正則表達式-e

<example id="1">some text</example> 
<example id="2">some other text</example> 
<example id="3">random words</example> 

我想用perl -pi -e刪除<example</example>,我可以很容易做到,但我不知道如何我可以做到這一點,也刪除這兩個標籤內的一切。

我目前可以得到由這樣擺脫<example</example>的:

perl -pi -e 's/<example//g' /file.xml; perl -pi -e 's/<\/example>//g' /file.xml; 

但很明顯,這仍然留下文字的其餘部分。

任何想法?

+1

要刪除文本的全部? 'perl -pi -e's /.+//'/ file.xml' – Borodin

+1

結束標記總是與開始標記在同一行上? – ysth

回答

4

這應該這樣做:

perl -pi'~' -e "s/<example.*?>.+?<\/example>//g" file.xml 
+0

工作過!謝謝! :-) –

+0

是否真的有必要引用波浪號?不要這樣想。但用單引號而不是雙引號引用替換表達式是有道理的。 – ceving

+1

你好,我想你是在Linux上,而不是在Windows上 – psxls