0

我希望创建一个 bash 脚本并使用 sed 将旧的谷歌分析代码替换为新的,但尚未取得任何成功,目前在使用以下代码时出现“未终止的替代模式”错误。另外我不确定我是否可以使用 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

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

4

1 回答 1

1

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

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

于 2013-02-21T02:39:15.660 回答