【发布时间】:2012-07-10 10:39:04
【问题描述】:
你好我想替换document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
与
(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);})();
在所有情况下...
所以我使用了下面的代码。
find /cygdrive/c/xampp/htdocs/news -type f -exec sed -i s#document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));#(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);})();#g {} \;
但它并没有取代。逃跑有问题吗?
谢谢
【问题讨论】:
-
Shell 将扩展双引号和单引号字符。你必须引用它们。
-
此外,“.” (点)在正则表达式中具有特殊含义。不过,在这种特殊情况下,它不太重要。
-
@fork0,这无济于事,shell 也会进行分词。空格需要转义(或引用)