我有一个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