Linuxで特定の文字列を含むファイルを超高速に検索するコマンド
|
プログラミングをしていると「特定のメソッドについて調べたいが、どのファイルに記述されているのかわからない」というような問題にぶつかることがあります。
Linuxではgrep
コマンドで特定の文字列を含んでいるファイルを検索できますが、対象のパスの階層が深かったりすると検索に時間がかかります。そのためackやripgrepなどといった超高速に検索できる専用のツールを使うのが一般的です。
私が愛用している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
驚くほど速く結果が表示され、↓このような感じでヒットしたファイルと行番号がわかります。
パスを指定して検索することももちろん可能です。
ag hogehoge /PATH
その他の使い方はhelpで確認すると良いでしょう。
ag --help
まとめ
超高速なgrepを実現するツール____The Silver Searcher(ag)__についてまとめました。やったね!