logo header
logo header
logo header
logo header
  • 2014.05.15
  • 技術ブログ

grep/ackより高速なag(the_silver_searcher)を使おう

EclipseIntelliJなど、無料、有料、問わずリッチな開発環境(IDE)が世を席巻して久しいですが、テキストエディタと各種コマンドラインツールで、日々コーディングしている人もまだまだ多いと思います。

今日は、そんなコマンドラインツールでも多様されるコマンドの1つgrep(やack)に変わるツール、ag(the_silver_searcher)を紹介します。

公式サイト

the_silver_searcher

これは何?

grepやackのように指定されたパス(ディレクトリやファイル)から、コマンドに渡されたパターンにマッチする行を表示してくれるツールです。Macであればbrewやports、Linuxであればaptやrpmコマンドでのインストールが可能のようです。私は手元のMacBook Airにbrewを導入しているので、

で、インストール出来ました。

どう使うの?

manから引用。

再帰オプションがデフォルトでついていて、grepやackより検索速度が速い事を謳っています。

使用例)
/etc/apache2配下でhttpを含んでいる行を検索します。

正規表現も使えます。例えば、/etc/apache2配下で、行頭にAliasという単語を含むもののみ検索します。

何が良いの?

公式サイト冒頭に記載されている(A code-searching tool similar to ack, but faster.)通り、既存のgrepやackより高速に動く事がウリの1つです。(他にもignoreパターンを.gitignoreなどのファイルから自動的に取得する等の機能があります)

参考までに、/etc配下からhttpにマッチするものを、grep、ack、agでそれぞれ検索した時の時間を計測してみました。

速度を謳うだけあって、やはりagが速いようです。

ともに世界をアップグレードできる、そんな日を夢見て。
Upgrade the World!