grep コマンドでサブディレクトリを除外できない

grep コマンドでサブディレクトリを除外できない

これは、検索のルート ディレクトリから "foo" ディレクトリを除外するという点で、私にとってはうまく機能します。

grep -rn --exclude-dir=foo 'custom'

しかし、これは機能しません:

grep -rn --exclude-dir=foo/bar 'custom'

しかし、「foo/bar」ディレクトリは依然として検索されます。引用符を使っても試してみました:

grep -rn --exclude-dir='foo/bar' 'custom'

Ubuntu 20を使用しています。

アップデート

完璧ではありませんが、代わりに次の回避策を使用しました。

grep -rn 'custom'|grep -v 'foo/bar'

この場合、「foo/bar」と「custom」の両方を含む行は見つかりません。

答え1

私も同じ問題に遭遇しましたが、電話して解決しました

grep -rn --exclude="**/foo/**" 'custom'

答え2

この演算子は、"*variable*"grep 検索から除外するディレクトリに一致するワイルドカードとして使用します。

あなたの場合、

grep -rn --exclude-dir={"*foo*"} 'custom''foo' という名前のディレクトリまたはサブディレクトリを除外します。

grep -rn --exclude-dir={"*foo*","*bar*"} 'custom''foo' および 'bar' という名前のディレクトリとサブディレクトリを除外します。

関連情報