Linuxで特定の文字列を含むファイルを超高速に検索するコマンド

プログラミングをしていると「特定のメソッドについて調べたいが、どのファイルに記述されているのかわからない」というような問題にぶつかることがあります。

Linuxではgrepコマンドで特定の文字列を含んでいるファイルを検索できますが、対象のパスの階層が深かったりすると検索に時間がかかります。そのためackripgrepなどといった超高速に検索できる専用のツールを使うのが一般的です。

私が愛用しているThe Silver Searcher(ag)もそのタイプのツールです。

 

The Silver Searcherとは

とにかくスピードに特化したコード検索ツールで、主な特徴は次の通りです。

  • 同じ検索ツールであるackよりもはるかに速いオーダーで検索
  • .gitignore.hgignoreなどで特定のパターンに合致するファイルを検索対象から除外可能
  • 検索したくないリポジトリごと、検索対象から除外可能
  • ackよりも打鍵を33%削減可能8(agという2文字のコマンドのため)

その他細かい説明はgithubリポジトリのREADMEをご覧あれ。

 

導入方法

Linux

  • Ubuntu >= 13.10 (Saucy) or Debian >= 8 (Jessie)
apt-get install silversearcher-ag

 

  • CentOS
yum install the_silver_searcher

 

Mac

Macはbrewでインストールできます。

brew install the_silver_searcher

 

使い方

ターミナルで検索対象のディレクトリへ移動し、ag hogehogeと打つだけです。

cd /hogehoge/hagehage
ag hogehoge

驚くほど速く結果が表示され、↓このような感じでヒットしたファイルと行番号がわかります。

the silver searcherコマンドの出力結果

 

パスを指定して検索することももちろん可能です。

ag hogehoge /PATH

 

その他の使い方はhelpで確認すると良いでしょう。

ag --help

 

まとめ

超高速なgrepを実現するツール____The Silver Searcher(ag)__についてまとめました。やったね!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください