grep を使用して文字列を検索するときに .git を回避する方法

grep を使用して文字列を検索するときに .git を回避する方法

grep を使用してフォルダー内の文字列を検索しようとしています。

grep -r "word" .

しかし、これには .git ファイル内の検索が含まれているため、これを回避したいのです。

ありがとう

答え1

ディレクトリを除外したい場合.git:

grep --exclude-dir=".git" -r "word" .

これは GNU では動作しますgrepが、他のバージョンでは動作しません。ただし、Linux を使用しているようなので、問題ないはずです。

答え2

「ack」を試してください(翻訳元:) では、.git、.hg、.csv などが無視されます。

デフォルトでは、Subversion、Git、その他の VCS ディレクトリやソース コード以外のファイルを無視して、ツリー全体を検索します。

答え3

grepこれは、ディレクトリの除外をサポートしていない場合の、より柔軟なソリューションです。

. -type d -path */.git -prune -o -type f -print0 | xargs -0 -e grep 単語を検索

関連情報