アックが使えます。ソースコードの 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
「結果そのものではなく、ファイル名を表示する」の略です。/
マシンのルートから開始することを表します。