我希望创建一个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'命令结合起来,以递归方式替换所有文件中的文本。
答案 0 :(得分:1)
您可以使用TextPad在多个文件中进行搜索和替换。它支持多行搜索和正则表达,并且是GUI。此外,它是一个免费软件。