javascript - 用 Perl 替换 HTML 文件的 JavaScript 代码

标签 javascript perl replace

我试图在结束前插入一段 JavaScript <\body>超过 2000 个 HTML 文件的标签。这是我试过的。但它没有完成这项工作。

perl -pi -w -e 's/\<\/body\>/\<div id=\"fb-root\"\>\<\/div\>
    \<script type=\"text\/javascript\" src=\"https:\/\/connect.facebook.net\/en_US\/all.js\"\>\<\/script\> 
    \<script type=\"text\/javascript\"\>

    FB.init\(\{
        appId: \"446059218762070\", 
        status: true, 
        cookie: true, 
        xfbml: true
    });

    \/\* As of Jan 2012 you need to use \*\/
    FB.Canvas.setAutoGrow\(2\);
    \<\/script\>
\<\/body\>/g' *.html

我用 perl -pi 做了一些其他的替换脚本,效果很好,就像

perl -pi -w -e 's/\<a href=\"index.html\"\>/\<a class=\"top_button\" href=\"index.html\"\>/g' *.html

perl -pi -w -e 's/\<link rel=\"STYLESHEET\" type=\"text\/css\" href=\"default.css\"\>/\<link rel=\"STYLESHEET\" type=\"text\/css\" href=\"default.css\"\>
\<script type=\"text\/javascript\" src=\"https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/1.4\/jquery.min.js\"\>\<\/script\>
\<script type=\"text\/javascript\" src=\"default.js\"\>\<\/script\>/g' *.html

谁能帮帮我?我的一行 Perl 脚本有什么问题?

最佳答案

主要问题是您正在尝试进行多行搜索和替换,但正在逐行处理文件。以下修改后的单行应该可以工作:

perl -i -wpe 'BEGIN{undef $/;} s[<div id="fb-root".+?</body>][</body>]gs' *.html

请注意,我已经简化了您的搜索字符串。没有必要逐个字符地重复整个 HTML/JavaScript 序列。还有几个本应在搜索字符串中转义的元字符。

关于javascript - 用 Perl 替换 HTML 文件的 JavaScript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11437315/

相关文章:

Javascript 必须单击表单之外的按钮两次

javascript - php 中的 site-onload-gif

html - 使用 Perl 从 url 中提取 HTML

Java String.replace/replaceAll 不工作

linux - 如何使用 grep 进行搜索和替换

javascript - 从 NetSuite 客户端调用 CanadaPost

javascript - 无法获取克隆元素以保留原始事件

perl - 使用 Term::Readline:Zoid 时出现 "ViCommand: no such keymap"错误

macos - 如何解决 "bad interpreter: No such file or directory"

php - MySQL 总是覆盖现有的数据库条目(UPDATE、REPLACE、INSERT ????)