2

我需要返回包含未console.log注释字符串的目录中的所有文件。//所以我认为我应该搜索在换行符和字符串之间没有字符串的任何行console.log

此命令返回已注释和未注释的 console.log。我想排除注释了 console.log 的实例。

grep -H -r  "^.*[^//].*console\.log" /var/www/vhosts/mysite.com

我需要的命令将匹配这些行:

var num = 0;  console.log(num);
alert('some text'); console.log('anything');
  console.log();

但不匹配这些行:

var num = 0; // console.log(num);
//alert('some text'); console.log('anything');
  // console.log();
4

4 回答 4

5

使用-L开关

grep -rL '//.*console\.log' directory

更新:

grep -rlP '^(?!.*//.*console\.log)(?=.*console\.log)' directory
于 2012-10-23T19:03:22.087 回答
1

扩展 Ωmega 的答案:为了找到多行注释 ( /* console.log(); */) 额外使用:

^(?!.*//.*console\.log)^(?!.*/\*.*console\.log)(?=.*console\.log)
于 2013-06-17T12:45:57.827 回答
0

列出所有包含未注释的文件的解决方案 console.log

grep -rlL "\/\/.*console\.log" /var/www/vhosts/mysite.com
于 2012-10-23T18:47:55.950 回答
0

-v您可以使用in 中的开关使用反转匹配grep

grep -H -r "console\.log" /var/www/vhosts/mysite.com | grep -v "//"
于 2012-10-23T18:49:39.483 回答