トップ  > メモ一覧  > カテゴリ「ack」の絞り込み結果 : 15件

15件中 1 〜 10 表示  1 | 2  次の5件> 最後»

No.3350 +α 全角カナが使用されている箇所の洗い出し

ack '\xe3(\x82[\xa1-\xbf]|\x83[\x80-\xb6\xbc])' -G mobile_frontend --ignore-dir=test

更新:2011/04/27 14:43 カテゴリ: ソース・開発  > ack ▲トップ

No.3532 ack-i"function(pre|post)?delete\("-Gmodel

ack -i "function (pre|post)?delete\(" -G model
更新:2011/03/29 19:48 カテゴリ: ソース・開発  > ack ▲トップ

No.3367 ack の G と g

ack

-G:通常検索結果から、さらにファイル名で絞り込む
-g :ファイル名検索



       -G REGEX
           Only paths matching REGEX are included in the search.  The entire path and filename are matched against REGEX, and REGEX is a Perl regular expression,
           not a shell glob.

           The options -i, -w, -v, and -Q do not apply to this REGEX.

       -g REGEX
           Print files where the relative path + filename matches REGEX. This option is a convenience shortcut for -f -G REGEX.

           The options -i, -w, -v, and -Q do not apply to this REGEX.

更新:2011/01/13 00:00 カテゴリ: ソース・開発  > ack ▲トップ

No.2272 ack;ファイル名検索

ack -g hoge
-G:指定した単語でファイル名をフィルタして検索
更新:2010/09/07 14:56 カテゴリ: ソース・開発  > ack ▲トップ

No.1839 OpenPNE開発者流のソースコードの追い方#1–ack編

OpenPNE 開発者流のソースコードの追い方 #1 – ack 編

開発チームの海老原です。
みなさん今日も元気にソースコード追ってますか? ということで今回は技術ネタです。

普段どおり楽しくコードを追ってたら、手嶋荘住人の川原君に、
「探索スキル高いですねー」
と感心されてしまったので、僕がコードを追うのに使っている方法を紹介していきます。

■本日のテーマ

「foo() という関数がどこで使われているか見たい!」
といったときのソースコードの追い方をご紹介します。

■前提環境

僕が開発に使用している以下の OS を想定して解説します。
といってもまあ UNIX 系 OS ならほとんどそのまま参考になるでしょう。
・Debian sid
・Mac OS X Leopard

■ go “ack” !

さて、本日のテーマ、
「foo() という関数がどこで使われているか見たい!」
というとき、こんなコマンドを叩いている方はいませんか?

$ grep -rw "foo(" .

これでも目的は果たせます。しかし、

・結果が見づらい
・subversion などのバージョン管理システムが使うディレクトリも対象にしてしまう(パイプで繋ぐことで回避は可能)
などといった欠点があります。

これを一気に解決してくれるだけでなく、ソースコード検索において
強力な機能を提供してくれるツールが ack です。
http://search.cpan.org/dist/ack

ack は CPAN で提供されているので、インストールは CPAN シェルに入って……
と言いたいところですが、 Debian では apt でインストールすることができます。
やっぱり Debian はいいですね。

# apt-get install ack-grep

その他の OS では、普通に CPAN でインストールするか、パッケージを取ってきて
展開して設置という手段を採る必要があります。 まあ CPAN でインストールするのが妥当でしょう。

以下のコマンドで CPAN シェルに入ってください。

# cpan

CPAN を使うのがはじめてであればここで設定に必要な事項の入力が求められます。
CPAN の設定についてはここでは解説しませんので、「CPAN 設定」などで検索してみてください。

準備が整ったら、 CPAN シェル上で以下のコマンドをタイプしてください。

cpan> install App::Ack

あとは指示に従えばインストールが完了するはずです。シェルから抜けてください。

cpan> exit

これで晴れて ack を利用できるようになりました!

それでは以下のコマンドを叩いて grep との差を見せつけてやりましょう。

(Debian の場合)

$ ack-grep -w "foo("

(それ以外)
$ ack -w "foo("

すごく見やすい! しかも .svn ディレクトリもご丁寧に無視してくれている!
これはもう使い倒していくしかないですね。

ということで、簡単に ack の便利な使い方を紹介していきます。

■ ack を使いこなす

前後の行を表示する

先ほどの例だと、「どこで」関数が使われているかはわかりますが、
「どうやって」「なぜ」関数が使われているかが伺い知れなかったりします。
そんなときにはこれ。

(Debian の場合)
$ ack-grep -C10 -w "foo("

(それ以外)
$ ack -C10 -w "foo("

この -C10 で、ヒットした行と前後をあわせての 10 行分の結果を出力してくれます。

前しか必要ないなら -B10、後ろだけなら -A10 と指定することもできます。

検索パターンに正規表現を使う

正規表現は grep でも使えるんですが、 ack では Perl 準拠の正規表現で書けるところがミソです。

lib ディレクトリ以下で、 op というプレフィックスがついたクラスなどの定義を見たい場合、
こんな感じでコマンドを実行してみてはどうでしょうか。

(Debian の場合)
$ ack-grep "(class|interface)s+opS+" lib

(それ以外)
$ ack "(class|interface)s+opS+" lib

「条件にマッチする」ファイルの一覧を表示

ack ではヒットしたファイル名のみを出力することができます。
lib ディレクトリ以下で OpenPNE のライセンス表記が含まれるファイルをリストアップします。

(Debian の場合)
$ ack-grep -l " * This file is part of the OpenPNE package" lib

(それ以外)
$ ack -l " * This file is part of the OpenPNE package" lib

これと xargs コマンドを併用することで、他のコマンドとの連携が可能になるなど応用できます。
(以下の例では条件にマッチしたファイルを削除します)


$ ack-grep -l "cholesterol" | xargs rm -f

「条件にマッチしない」ファイルの一覧を表示

逆もできます。
今度はライセンス表記が含まれないファイルをリストアップします。

(Debian の場合)
$ ack-grep -L " * This file is part of the OpenPNE package" lib

(それ以外)
$ ack -L " * This file is part of the OpenPNE package" lib

もちろんこれも他のコマンドと組み合わせやすくて重宝します。


$ ack-grep -L "Kousuke Ebihara " | xargs rm -f

■他にも便利な使い方がたくさん

ack には紹介しきれないくらい多くの便利なオプション(-f や –thpppt など)が存在します。

また、設定ファイル .ackrc によって検索対象のルールを作成することもできます。

ぜひ、 http://search.cpan.org/dist/ack/ack-base のマニュアルをご覧ください。
きっと新しい活用方法が見つかるはず!

コードリーディングを楽しむには、 ack のような便利なツールが不可欠です。
ぜひみなさんも今回紹介したテクニックを活用して、コードと友達になりましょう!

それでは、よいコードリーディングライフを!

引用元

更新:2009/12/09 10:17 カテゴリ: ソース・開発  > ack ▲トップ

No.824【引用】ack cpan インストール

セットアップ方法
step 1
su -
cpan
対話式にいろいろと聞かれ始めますが、なにも気にせずデフォルト設定のまま Enter キーをバンバン押しまくちゃってOKです。ただ、以下のCPANミラーサイトはどこにする?の質問に対してはきちんと Asia > Japan と答えた上で、任意のミラーサイトを選んであげてください:
どの地域よ?

(1) ...
(2) Asia
(3) ...
(4) ...
Select your continent (or several nearby continents) []

アジアのどこよ?

(1) ...
(2) ...
(7) Japan
(8) ...
Select your country...

引用元

更新:2009/09/14 15:05 カテゴリ: ソース・開発  > ack ▲トップ

No.1028 全角アルファベットの探し方

ack "\xef\xbd[\x81-\x9a]"
更新:2009/06/09 20:56 カテゴリ: ソース・開発  > ack ▲トップ

No.959 ack +α

ack MessageTypeI18n -l | grep lib
⇒検索・ファイル名のみ&「lib」を含むもの

ack MessageTypeI18n -l | grep lib | xargs rm
⇒それを消す
更新:2009/05/28 14:57 カテゴリ: ソース・開発  > ack ▲トップ

No.467 ack 単語検索

ack -w '検索語' .

-w つけるべし
更新:2008/11/02 23:04 カテゴリ: ソース・開発  > ack ▲トップ
15件中 1 〜 10 表示  1 | 2  次の5件> 最後»

FuelPHP

Mac

フロントエンド開発

web開発

プロマネ

マネタイズ

プレゼン

webサービス運用

webサービス

Linux

サーバ管理

MySQL

ソース・開発

svn・git

PHP

HTML・CSS

JavaScript

ツール, ライブラリ

ビジネス

テンプレート

負荷・チューニング

Windows

メール

メール・手紙文例

CodeIgniter

オブジェクト指向

UI・フロントエンド

cloud

マークアップ・テキスト

Flash

デザイン

DBその他

Ruby

PostgreSQL

ユーティリティ・ソフト

Firefox

ハードウェア

Google

symfony

OpenPNE全般

OpenPNE2

Hack(賢コツ)

OpenPNE3

リンク

個人開発

その他

未確認

KVS

ubuntu

Android

負荷試験

オープンソース

社会

便利ツール

マネー

Twig

食品宅配

WEB設計

オーディオ

一般常識

アプリ開発

サイトマップ

うずら技術ブログ

たませんSNS

rss2.0