鉴于这个文件,我正在尝试做一个超级原始sed
或perl
替换页脚。
通常我使用 DOM 来解析 HTML 文件,但到目前为止,由于我使用 sed/perl 处理的原始 HTML 文件(时间很重要),我没有遇到任何问题。
我需要的只是替换<div id="footer">
包含空格的元素,一个包含另一个元素的元素,并</div>
用<?php include 'footer.php';?>
.
出于某种原因,我什至无法让这个模式匹配,直到<div id="stupid">
. 我知道有空格字符,所以我使用了\s*
:
perl -pe 's|<div id="footer">.*\s*.*\s*|<?php include INC_PATH . 'includes/footer.php'; ?>|' file.html | less
但这仅与第一行匹配。替换看起来像这样:
<?php include INC_PATH . includes/footer.php; ?>
<div id="stupid"><img src="file.gif" width="206" height="252"></div>
</div>
我是否忘记了一些简单的事情,或者我应该指定某种标志来处理多行匹配?
perl -v
是 5.14.2,我只使用pe
标志。