【发布时间】:2012-05-16 03:11:39
【问题描述】:
鉴于this 文件,我正在尝试对页脚进行超级原始sed 或perl 替换。
通常我使用 DOM 来解析 HTML 文件,但到目前为止,由于我使用 sed/perl 处理的原始 HTML 文件(时间很重要),我没有遇到任何问题。
我只需要用<?php include 'footer.php';?> 替换包含空格的<div id="footer">、包含另一个元素的元素和结束</div>。
由于某种原因,在<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 标志。
【问题讨论】: