带有未注释的“console.log”字符串的 Grep 文件

ste*_*red 2 regex unix grep

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

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

grep -H -r  "^.*[^//].*console\.log" /var/www/vhosts/mysite.com
Run Code Online (Sandbox Code Playgroud)

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

var num = 0;  console.log(num);
alert('some text'); console.log('anything');
  console.log();
Run Code Online (Sandbox Code Playgroud)

但不匹配这些行:

var num = 0; // console.log(num);
//alert('some text'); console.log('anything');
  // console.log();
Run Code Online (Sandbox Code Playgroud)

Ωme*_*ega 5

使用-L开关

grep -rL '//.*console\.log' directory
Run Code Online (Sandbox Code Playgroud)

更新:

grep -rlP '^(?!.*//.*console\.log)(?=.*console\.log)' directory
Run Code Online (Sandbox Code Playgroud)