0
我有两个网页,一个页面已经手工创建,另一个已经用visual studio 2010(.aspx)发布。我想修改这些文件的内容,用一个脚本标记替换一堆脚本标记。为了实现这个目标,我只需从批处理文件中运行一些Perl代码。下面是前和替换后的Perl代码和HTML:Perl替换失败,多线程
的Perl在分批:
perl -pi.backup -e "s/<!--\s*<pack>\s*-->.*?<!--\s*<\/pack>\s*-->/<script src=\"pack.js\"><\/script>/s" file.aspx
HTML输入:
<!-- <pack> -->
<script src="file1.js" type="text/javascript"></script>
<script src="file2.js" type="text/javascript"></script>
<!-- </pack> -->
HTML输出:
<script src="pack.js"></script>
一切适用于手工创建的文件,而生成的文件不会更新,除非将所有行集中为一个。我想这个问题来自换行符,但我不明白为什么它只为第一个文件工作,因为代码是完全一样的。
谢谢,它的工作原理!你能解释为什么我的版本适用于两个文件之一? – leaf 2013-02-12 10:50:44
@wared,你手工创建的文件可能会存储换行符,这是Perl不能识别的格式。 – 2013-02-12 10:54:52
好的,非常感谢! – leaf 2013-02-12 11:13:40