grepの高速版「ag」 (The Silver Searcher)
grepを使う場面のほとんどはソースコードの検索です。
むしろそれ以外のケースで使うことはほとんどないのではないでしょうか。
ですので使い方の多くは
$ grep keyword *.cpp
とか
$ find . -name \*.cpp | xargs grep keywork
のようなコマンドをタイプすることになろうかと思います。
ですが .svn や .git の下は対象外にしてほしい、.gitignoreで無視指定されたファイルは対象外にしてほしい等、細かなケースでの融通を利かせるには少々不便であることが難点です。なによりタイプする字数が多くて面倒です。
そこで ag が便利です。
ggreer/the_silver_searcher · GitHub
正式名は The Silver Searcher というそうです。
ubuntu 13.10以降ではこんな感じにインストールできるらしいのですが
$ apt-get install silversearcher-ag
私はubuntu12.04を使っているためうまくいきません。ですがソースからビルドするだけで簡単にインストール可能でした。
$ sudo apt-get install -y automake pkg-config libpcre3-dev zlib1g-dev liblzma-dev $ git clone https://github.com/ggreer/the_silver_searcher.git $ ./build.sh $ sudo make install
これで /usr/local/bin にインストールされます。
これのメリットは使い方が簡単でタイプ数が少なくて済むことと、grepよりはるかに高速であること、出力結果がファイル毎に分けられていて読みやすい、という所にあります。
$ ag keyword
使い方はこんな風にするだけでカレントディレクトリ配下のソースコードを検索してくれます。
くわしいオプションなどはこちら参照で。
なにより *.cpp みたいにShiftキーを使わないと書けない「*」を使わなくて良い点がかなりストレスを減らしてくれます。一度使い始めるともうこれしか使わなくなるほど便利です。