在几百个静态页面中替换Google Analytics代码?

时间:2012-07-24 17:24:38

标签: bash replace sed awk

我希望创建一个bash脚本并使用sed替换旧的Google分析代码,但尚未取得任何成功,目前在使用以下代码时会出现“未终止的替代模式”错误。另外我不确定我是否可以使用sed来替换像这样的多行文本块,也许我必须使用awk?

OLDANALYTICS='<script type=\"text/javascript\">
var gaJsHost = ((\"https:\" == document.location.protocol) ? \"https://ssl.\" : \"http://www.\");
document.write(unescape(\"%3Cscript src='\''\" + gaJsHost + \"google-analytics.com/ga.js'\'' type='\''text/javascript'\''%3E%3C/script%3E\"));
</script>
<script type=\"text/javascript\">
try {
var pageTracker = _gat._getTracker(\"UA-111111-5\");
pageTracker._trackPageview();
} catch(err) {}</script>'

NEWANALYTICS='<script type=\"text/javascript\">
            var _gaq = _gaq || [];
            _gaq.push(['\''_setAccount'\'', '\''UA-111111-5'\'']);
            _gaq.push(['\''_trackPageview'\'']);

            (function() {
                var ga = document.createElement('\''script'\''); ga.type = '\''text/javascript'\''; ga.async = true;
                ga.src = ('\''https:'\'' == document.location.protocol ? '\''https://ssl'\'' : '\''http://www'\'') + '\''.google-analytics.com/ga.js'\'';
                var s = document.getElementsByTagName('\''script'\'')[0]; s.parentNode.insertBefore(ga, s);
            })();

        </script>'

sed -i '' "s#$OLDANALYTICS#$NEWANALYTICS#g" $1

一旦工作,我必须将它与'find'命令结合起来,以递归方式替换所有文件中的文本。

1 个答案:

答案 0 :(得分:1)

您可以使用TextPad在多个文件中进行搜索和替换。它支持多行搜索和正则表达,并且是GUI。此外,它是一个免费软件。

http://www.textpad.com/download/