本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。 ====== 作弊条:用 Perl 删除符合某些模式的多行文字 ====== 处理同事 blog 时发现其网页中有使用旧式的 Google Analytics,由于历史原因使用了多行的 tag,形如: <code javascript> <style type='text/css'>img#wpstats{display:none}</style><!-- Google Analytics Tracking by Google Analyticator 6.5.0: http://www.videousermanuals.com/google-analyticator/ --> <script type="text/javascript"> var analyticsFileTypes = ['']; var analyticsSnippet = 'enabled'; var analyticsEventTracking = 'enabled'; </script> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']); _gaq.push(['_addDevId', 'XXXXX']); // Google Analyticator App ID with Google _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> </code> 希望将 <code><!-- Google Analytics Tracking by Google Analyticator 6.5.0: http://www.videousermanuals.com/google-analyticator/ --></code>开始的两个 <code><script>..</script></code> tag删除。 使用了这样的 Perl 命令: <code bash> perl -i -pe 'BEGIN{undef $/;} s/<!-- Google Analytics Tracking by.*?<\/script>.*?<\/script>//sm' $(grep -lR ga.js *) </code> 这里的重点是匹配时应使用不贪心匹配(.*?)而不是贪心匹配(.*)