私は 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」コマンドに組み込む必要があります。