アックが使えます。ソースコードの grep のようなものです。ファイル システム全体をスキャンできます。
するだけです:
ack 'text-to-find-here'
ルート ディレクトリ内。
正規表現を使用したり、ファイルタイプを指定したりすることもできます。
更新
ack に似ていますが、それより 3 ~ 5 倍高速で、.gitignore のパターンも無視する The Silver Searcher を発見しました。 ファイル。
以下を行います:
grep -rnw '/path/to/somewhere/' -e 'pattern'
-rまたは-R再帰的です-nは行番号、-w単語全体の一致を表します。-l(小文字の L) を追加して、一致するファイルのファイル名を指定できます。-e検索中に使用されるパターンです
これらとともに、--exclude 、 --include 、 --exclude-dir 効率的な検索のためにフラグを使用できます:
- これは、拡張子が .c または .h のファイルのみを検索します:
grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
- これにより、.o 拡張子で終わるすべてのファイルの検索が除外されます:
grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern"
- ディレクトリの場合、
--exclude-dirを使用して 1 つ以上のディレクトリを除外できます パラメータ。たとえば、dir1/、dir2/、および *.dst/:に一致するすべてのディレクトリが除外されます
grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"
これは私にとって非常にうまく機能し、あなたの目的とほぼ同じ目的を達成できます。
その他のオプションについては、man grep を参照してください。 .
grep -ilR を使用 :
grep -Ril "text-to-find-here" /
i大文字と小文字を区別しないことを表します (この場合はオプションです)。R再帰を表します。l「結果そのものではなく、ファイル名を表示する」の略です。/マシンのルートから開始することを表します。