使用sed从javascript文件中删除所有console.log

pky*_*eck 7 regex bash sed

我试图删除我所有的console.log,console.dir与YUI(涅槃之前,从我的JS文件等在OSX).

我为控制台语句获得的正则表达式如下所示:

console.(log|debug|info|warn|error|assert|dir|dirxml|trace|group|groupEnd|time|timeEnd|profile|profileEnd|count)\((.*)\);?
Run Code Online (Sandbox Code Playgroud)

如果我用RegExr测试它就可以了.但它不适用sed.

为了让这个工作,我需要改变什么?

sed 's/___???___//g' <$RESULT >$RESULT_STRIPPED
Run Code Online (Sandbox Code Playgroud)


更新

得到第一个答案后我试过了

sed 's/console.log(.*)\;//g' <test.js >result.js
Run Code Online (Sandbox Code Playgroud)

这是有效的,但是当我添加OR时

sed 's/console.\(log\|dir\)(.*)\;//g' <test.js >result.js
Run Code Online (Sandbox Code Playgroud)

它不会取代"日志":

终端截图

Mar*_*tin 10

你的原始表达看起来很好.您只需将-E标志传递sed扩展正则表达式:

sed -E 's/console.(log|debug|info|...|count)\((.*)\);?//g'
Run Code Online (Sandbox Code Playgroud)

这些类型的正则表达式之间的区别在于解释man re_format.说实话,我从来没有读过那个页面,而只是简单地说,-E当事情没有按预期工作时.=)

  • 你现在是我最好的朋友!```console.(log | debug | info | count)\((.*)\);?```在sublime安全清理2k行.没有更丑陋的日志:-) (3认同)