GNU/Linux >> Linux の 問題 >  >> Linux

Linux で特定のテキストを含むすべてのファイルを見つけるにはどうすればよいですか?

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

Linux
  1. テキスト文字列を含まないすべてのファイルを検索するにはどうすればよいですか?

  2. Unix / Linuxで特定のユーザーが所有するすべてのファイルを見つける方法は?

  3. Linux で GREP を使用して特定のテキストを検索する方法

  1. Linux ですべてのスパース ファイルを見つける方法

  2. Linuxで文字列を含む行を見つける方法

  3. Linuxで2つの文字列を一緒に含むファイルを見つける方法は?

  1. Grepコマンドを使用してファイル内のテキストを検索する方法

  2. パターンに一致する特定のファイルを検索する方法は?

  3. Linux ですべてまたは特定のファイルを gzip する方法