すべての隠しディレクトリを除外するには、grepとpcregrepを使用します。

すべての隠しディレクトリを除外するには、grepとpcregrepを使用します。

再帰検索からすべての隠しディレクトリを除外しようとしています。

私は.*/\..*これが隠されたディレクトリと一致する必要があると思いましたが、これはfindと連携しますが、grepはそうは思いません。

pcregrep -rnI -C 5 --exclude-dir='.*/\..*' '^\s*async def' .

grep -rnIP -C 5 --exclude-dir=*/.* '^\s*def' .

私がここで何を間違っているのか?

ああ、ripgrep、silver searcherなどは知っています。問題はgrepとpcregrepについてです。

答え1

そしてpcregrep

pcregrep -r --exclude-dir='^\..' pattern .

そしてgrep

grep -r --exclude-dir='.[^.]*' pattern .

参考にして--exclude-dir意味が異なります。詳しくは、該当するマニュアルをお読みください。pcregrepgrep

関連情報