現在のフォルダーに「foo」を含むすべてのファイルを見つけるには、次を使用します。
grep -r "foo" .
現在のフォルダーに「bar」を含むすべてのファイルを見つけるには、次を使用します。
grep -r "bar" .
しかし、「foo」と「bar」を含まないすべてのファイルを見つける方法は?
文字列を含まない行を出力するには、次の-v
フラグを使用します。
grep -r -v "bar" . | grep -v "foo"
これにより、またはを含まないすべての行が得られます。foo
bar
文字列を含まないファイルを印刷するには、-L
フラグを使用します。複数の文字列に一致しないようにするには、正規表現と-P
フラグを使用できます (使用できる正規表現フラグがいくつかあります)。
grep -r -L -P "(foo|bar)" .
foo
これは、またはを含まないファイルのリストを出力しますbar
。
これを指摘してくれたAnton Kovalenkoに感謝します。
これを試してください:
grep -L -e "foo\|bar" *
以下をお試しください。これはうまくいくはずです
grep -rL -P "(foo | bar)"。