假设我有一个包含一堆 .js 文件的项目。我想找出哪些文件不包含此行:
const process = require('suman-browser-polyfills/modules/process');
如果我做
grep -v "suman-browser-polyfills/modules/process" .
那么它会简单地记录每个不匹配文件的每一行。那根本不会给我我想要的东西。
有谁知道一个好方法来做到这一点?
答案1
您可以使用该-L
选项(或其等效的长选项,--files-without-match
来自通用输出控制部分man grep
:
-L, --files-without-match
Suppress normal output; instead print the name of each input
file from which no output would normally have been printed. The
scanning will stop on the first match.
例如,
grep -FL "const process = require('suman-browser-polyfills/modules/process');" *.js
(该-F
选项告诉 grep 将搜索模式视为固定字符串,而不是正则表达式 - 您的示例模式中似乎没有任何正则表达式特殊字符,但我们不应该假设情况总是如此.)