ack かわいいよ ack

Unixコマンドラインソースコードから特定文字列を検索する場合、僕は以下のように行なっている。

find . -name \( -name "*.c" -o -name "*.cpp" -o -name "*.h" \) | xargs grep hoge

ただこれ、すごい長くて打つのが面倒。

そこで使用したいのが ack コマンド。

ack hoge -G "\.(c|cpp|h)$"

これだけ。

find + grep のようなキメ細かさはないけど、常用ではとにかく適当に探し当てたい場合は便利。ハイライトもしてくれる。バージョン管理フォルダ(.svn とか .git とか CVS とか)を除外してくれるのがナイス。要するにプログラマ向けですな。

ack は Perl スクリプトCPAN からインストールする。

sudo cpan App:Ack

もしかすると aptitude とか yum とかでもいけるかも。

僕はファイルを探したいと思ったら、既に find を打ち込んでしまっているぐらい find + grep に慣れてしまっているんだけど、やっぱり長いので疲れるから、ack も併用するようにしようと思ってブログに宣言。

以下、参考になるサイト様。

2012/03/09 追記

Ubuntu 10.04 で apt-get install ack でインストールできた。

だけどバージョンが古いようで -G が使えなかった。

2013/01/17 追記

Ubuntu 10.04 で apt-get install ack-grep になっていた。

ack は Kanji code converter に置き換わっていた。