我有一個HTML文件的文件夾,它具有我需要刪除的下面的DOCTYPE聲明,這樣一個不太好的解析器可以成功地將它加載爲XML。如何觸發Perl多行替換
我一直在嘗試使用perl來完成替換,但是當我運行替換時沒有發生變化,我找不到原因。任何人都可以識別出正確的標誌或規範,我需要在這裏刪除DOCTYPE處理指令。
這是我想操作的示例文件。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 25 March 2009), see www.w3.org" />
<title></title>
</head>
<body>
</body>
</html>
這裏的Perl的一個班輪我試圖使用,這看起來對尖括號,感嘆號,一切都結束尖括號之前。它包含perl替換標誌,其他帖子建議應該用於多行匹配 - m用於多行,s用於允許換行符與正則表達式匹配。然後我用空字符串替換匹配。
perl -i -e 's/<![^>]+>//gsm' `find . -name '*.html'`
我不明白爲什麼,但運行此命令後DOCTYPE不會從文件中刪除。其他人知道爲什麼嗎?
我可以從這個答案和附註中瞭解到整個負載,謝謝你付出的努力! – user2257198 2013-05-28 16:26:40
不客氣。 – TLP 2013-05-28 16:50:52