获取目录中*不*包含行的文件的唯一列表

获取目录中*不*包含行的文件的唯一列表

假设我有一个包含一堆 .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 将搜索模式视为固定字符串,而不是正则表达式 - 您的示例模式中似乎没有任何正则表达式特殊字符,但我们不应该假设情况总是如此.)

相关内容