我试图删除我所有的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当事情没有按预期工作时.=)