12

現在のフォルダーに「foo」を含むすべてのファイルを見つけるには、次を使用します。

grep -r "foo" .

現在のフォルダーに「bar」を含むすべてのファイルを見つけるには、次を使用します。

grep -r "bar" .

しかし、「foo」と「bar」を含まないすべてのファイルを見つける方法は?

4

5 に答える 5

23

文字列を含まないを出力するには、次の-vフラグを使用します。

grep -r -v "bar" . | grep -v "foo"

これにより、またはを含まないすべての行が得られます。foobar

文字列を含まないファイルを印刷するには、-Lフラグを使用します。複数の文字列に一致しないようにするには、正規表現と-Pフラグを使用できます (使用できる正規表現フラグがいくつかあります)。

grep -r -L -P "(foo|bar)" .

fooこれは、またはを含まないファイルのリストを出力しますbar

これを指摘してくれたAnton Kovalenkoに感謝します。

于 2013-02-11T10:02:26.727 に答える
4

これを試してください:

  grep  -L -e  "foo\|bar" *
于 2013-02-11T10:22:59.843 に答える
2

以下をお試しください。これはうまくいくはずです

grep -rL -P "(foo | bar)"。

于 2013-02-11T10:15:33.167 に答える