web-dev-qa-db-ja.com

Ubuntuでコンテンツで検索する方法

サーバー全体をコンテンツで検索したいのですが。 (テキストファイル)

Grep -rl "text here"を試してみると、フリーズします。

どうしますか?

そして、それは通常どのくらいかかりますか?

8
webnat0

grepコマンドを使用する場合は、ファイルを指定する必要があります。使用しているコマンドを使用して、標準入力を検索しています...

grep -r "test" directoryをお試しください。

17
ChrisJ
find / -name "*.txt" -exec grep "text here" {} \; -print 2>/dev/null

これは人間の話では次のように説明できます:

  1. 見つける
  2. から始まる /
  3. * .txtという名前のすべてのファイル内(引用符はシェルの解釈をバイパスするためのものです)
  4. 結果のヒットで、次を実行します
  5. grep "ここでテスト"
  6. ファイル{}内
  7. execの終わり(\;)エスケープされたステートメントの終わり
  8. 一致するファイルを印刷する
  9. シンクのエラーメッセージをリダイレクトします(ルートではない可能性があるため、それ以外の場合は単にそれをSudoで処理するため)。
7
Alain Pannetier

検索するファイルの種類を指定するのを忘れた場合、
必ずrootとしてログインしてください

cd /
grep -rl "text here" *  > /tmp/match.txt

これには非常に長い時間がかかります。後で/tmp/match.txtを確認して結果を収集できます。

0
ajreal

次のコマンドは、現在の作業ディレクトリとすべてのサブディレクトリで.txtで終わるすべてのファイルを検索します。

find . -type f -name '*.txt' -exec grep -Hn "text here" {} \;

0
Antti