ackコマンド
目次
概要
設定
macで試してみる。以下3つのうちどちらかの手順で設定が行える。
1. port install
1行コマンドを実行するだけ。
sudo port install p5-app-ack2.コマンド作る
自分のローカルフォルダに設置。PATHの設定も必要。
mkdir -p ~/local/bin/ fetch http://betterthangrep.com/ack-standalone > ~/local/bin/ack chmod +x ~/local/bin/ack設定ファイル
~/.ackrcファイルを設定する。自動でオプションが反映される。
--ignore-dir=bak --sort-files --pager=less --nogroup --type-add=php=.inc --type-set=tags=tags
コマンドの実例
オプションは以下のリンクを参照。http://search.cpan.org/dist/ack/ack-base オプションの日本語ドキュメントがほとんど無い(涙)
Pager指定
検索結果をlessで開く。
ack test --pager="less"ファイルタイプ指定
検索対象となるファイルタイプを指定する。以下はhtmlファイルが対象。
ack --html test指定可能なファイルタイプはack --help-typeで閲覧可能。
ファイル検索
指定したファイル一覧を表示。
ack -f --html完全一致検索
指定した単語の完全一致を検索。
ack -w test指定単語の前後行出力
testという単語に一致する前後5行までを出力。
ack -C 5 testgrepと同じくB(前行),A(後行)のみも表示可能
ack -B 5 test ack -A 5 test再起的に検索しない
オプション-rが再起的検索指定(おそらくデフォルトで指定)。-nが再起的検索しない。
ack -n testgroup指定を外す
結果表示方法の切り替え。ackはデフォルトgroup指定がされており、これにより各ファイルに対しての検索結果がまとめられてしまう。それをgrepのようにgroupを外す事が可能。
ack --nogroup test通常のack結果
test.html 2:test test.php 2:echo "test"; test.pl 2:testnogroup指定結果
test.html:2:test test.php:2:echo "test"; test.pl:2:test検索対象から特定ディレクトリを外す
検索対象から特定ディレクトリを外す指定。bakディレクトリを無視する。
ack --ignore-case bak猫キャラ表示
全然意味ないコマンドなんで無視。
ack --thpppt結果
_ /| \'o.O' =(___)= U ack --thpppt!デフォルト指定?
以下のオプションはどうやらデフォルトで指定されている様子。
--color : 結果のハイライト -r : 再起的検索