行を含まない*ディレクトリの一意のファイルのリストを取得します。

行を含まない*ディレクトリの一意のファイルのリストを取得します。

複数の.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に検索パターンを正規表現ではなく固定文字列として扱うように指示します。パターン例には正規表現特殊文字がないように見えますが、常にそのような場合を想定してはいけません。)

関連情報