112

.gitGitリポジトリを検索していますが、フォルダを含めたいと思います。

grep実行した場合、このフォルダは含まれません

grep -r search *

このフォルダを含めるためのgrepコマンドは何でしょうか?

4

10 に答える 10

152

あなたがしていることのより良い代替案として、この投稿の最後にある解決策を参照してください。

隠しファイルを明示的に含めることができます(ディレクトリもファイルです)。

grep -r search * .[^.]*

は、*隠しファイルを除くすべてのファイルと一致し、 。.[^.]*なしの隠しファイルのみと一致します..。ただし、特定のディレクトリに隠しファイルがないか、隠しファイルがない場合、これは失敗します。.gitもちろん、の代わりに明示的に追加することもでき.*ます。

ただし、単に特定のディレクトリを検索する場合は、次のようにします。

grep -r search .

は現在の.パスと一致します。これには、隠しファイルと隠しファイルの両方が含まれます。

于 2012-04-29T20:28:21.887 に答える
16

私はちょうどこの問題に遭遇しました、そして@bitmaskの答えに基づいて、これは@seheによって指摘された問題を避けるための私の簡単な修正です:

grep -r search_string * .[^.]*
于 2016-10-31T21:54:10.680 に答える
4

おそらく、次のような完全なソリューションを得るには、「grep」と「find」コマンドを組み合わせることをお勧めします。

find . -exec grep -Hn search {} \;

このコマンドは、隠しファイルまたはディレクトリ内で文字列「search」を検索し、次の出力形式と一致するファイルを一覧表示します。

ファイルパス:行番号:一致する行

./foo/bar:42:search line
./foo/.bar:42:search line
./.foo/bar:42:search line
./.foo/.bar:42:search line
于 2014-02-10T13:45:24.827 に答える
2

現在のディレクトリを検索していると仮定して、このアプローチを使用することをお勧めします(そうでない場合は、。を目的のディレクトリに置き換えます)。

find . -type f | xargs grep search

または、トップレベルで検索したいだけの場合(これらを試しているかどうかをテストする方が簡単です):

find . -type f -maxdepth 1 | xargs grep search

更新:スコットのコメントに応じて例を変更しました。「-typef」も追加しました。

于 2014-02-13T16:49:05.900 に答える
2

一致を防ぎ...隠しファイルではない場合は、次の例のようにgrep使用できます。ls -A

ls -A | grep "^\."

^\.最初の文字は.

-Aorオプションは結果を--almost-all除外し、隠しファイルと隠しディレクトリのみが一致するようにします。...

于 2019-07-25T00:35:30.913 に答える
1

他のすべての答えはより良いです。これは覚えやすいかもしれません:

find . -type f | xargs grep search

ファイル(非表示を含む)のみを検索し、各ファイルを取得します。

于 2015-10-12T07:05:57.537 に答える
1

現在の場所からすべての隠しファイルとディレクトリのみを検索するには:

find . -name ".*" -exec grep -rs search {} \;

すべての隠しファイルのみ:

find . -name ".*" -type f -exec grep -s search {} \;

すべての隠しディレクトリのみ:

find . -name ".*" -type d -exec grep -rs search {} \;
于 2018-02-08T17:41:07.547 に答える
1

特定のフォルダ内でのみ検索するには、次を使用できます。

ls -al | grep " \."

リストしてgrepにパイプするのは非常に簡単なコマンドです。

于 2018-09-16T05:06:46.570 に答える
1

タイラーの提案に加えて、隠しファイルを含むすべてのファイルとフォルダーを再帰的にgrepするコマンドは次のとおりです。

find . -name "*.*" -exec grep -li 'search' {} \;
于 2019-08-07T00:57:05.973 に答える
-1

隠しディレクトリファイルのように、特定の種類の隠しファイルを検索することもできます。

grep -r --include=*.directory "search-string"

これは、他のいくつかのオプションよりもうまく機能する可能性があります。機能した他のオプションは遅すぎる可能性があります。

于 2020-07-16T10:22:55.347 に答える