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

インデックスを使用してgrepを高速化しますか?

コードベースを RAM ディスクにコピーできます。


全文索引付け

recoll、swish-e、sphinx などのツールがありますが、それらが必要な種類の検索基準をサポートできるかどうかを確認する必要があります。

リコール

<ブロック引用>

Recoll は、Unix/Linux 用の個人用全文検索ツールです。

スウィッシュ

<ブロック引用>

Swish-e は、Web ページやその他のファイルのコレクションをインデックス化するための高速で柔軟な無料のオープン ソース システムです。

スフィンクス

<ブロック引用>

Sphinx を使用すると、SQL データベース、NoSQL ストレージ、または単なるファイルに保存されているデータのインデックス作成と検索をすばやく簡単に行うことができます

grep

grep があなたが説明するほど遅いことに驚いています。検索するファイルの数を減らすことはできますか?たとえば、(プロジェクト内の多数の実行ファイルの中から) 1 つの実行ファイルのソース ファイルのみを検索する必要がある場合、そのプログラムのソース ファイルを一覧表示するコマンドから名前を grep にフィードします。

grep expression `sources myprogram`

sources 私の開発環境に固有のプログラムですが、同等のものを持っている (または構築できる) かもしれません。

私はあなたが次のような明白なテクニックを試したと仮定しています

find /foo/myproject -name "*.c" -exec fgrep -l searchtext

-P という提案を読みました 現在の grep のオプション 検索を大幅に高速化できます。


cscope はどうですか?これはあなたの靴に合っていますか?

次のコードを検索できます:

  • シンボルへのすべての参照
  • グローバル定義
  • 関数によって呼び出される関数
  • 関数を呼び出す関数
  • テキスト文字列
  • 正規表現パターン
  • ファイル
  • ファイルを含むファイル

Linux
  1. PDFファイルをgrepする方法は?

  2. Grep:メモリが使い果たされましたか?

  3. `rm`をゴミ箱に移動しますか?

  1. Lsを使用してアクセス許可でファイルを並べ替える方法は?

  2. Grepを使用して行の最後のアイテムを検索しますか?

  3. ファイル内の複数の文字列を見つける方法は??

  1. 検索を使用して複数のファイルの名前を変更するにはどうすればよいですか?

  2. SCPを使用してファイルを安全に転送する方法

  3. rsyncを使用してファイルを同期する