我需要返回包含未注释字符串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();
答案 0 :(得分:2)
<击>
使用-L
开关
grep -rL '//.*console\.log' directory
击> <击> 撞击>
grep -rlP '^(?!.*//.*console\.log)(?=.*console\.log)' directory
答案 1 :(得分:0)
列出所有文件的解决方案,其中包含未注释的console.log :
grep -rlL "\/\/.*console\.log" /var/www/vhosts/mysite.com
答案 2 :(得分:0)
您可以使用-v
中的grep
开关来使用反向匹配。
grep -H -r "console\.log" /var/www/vhosts/mysite.com | grep -v "//"
答案 3 :(得分:0)
扩展Ωmega的答案:为了多行评论(/* console.log(); */
),另外使用:
^(?!.*//.*console\.log)^(?!.*/\*.*console\.log)(?=.*console\.log)