git grep
Git grepを便利に使う-eオプションについて - Qiita
を参考にgit grepを使ってみました。
です。
-eオプション
-eの後にgrepしたい条件を書くことで、正規表現による絞り込みができます。
$ git grep -e 'GET /apache' log.ltsv:host:127.0.0.1 user:frank epoch:1372694390 req:GET /apache_pb.gif HTTP/1.0 stat log.ltsv:host:127.0.0.1 user:john epoch:1372794390 req:GET /apache_pb.gif HTTP/1.0 stat log.ltsv:host:127.0.0.1 user:- epoch:1372894390 req:GET /apache_pb.gif HTTP/1.0 status:503 log.ltsv:host:127.0.0.1 user:frank epoch:1372694390 req:GET /apache_pb.gif HTTP/1.0 stat main.pl: req => 'GET /apache_pb.gif HTTP/1.0', main_v2.pl: req => 'GET /apache_pb.gif HTTP/1.0', t/01_use.t: req => 'GET /apache_pb.gif HTTP/1.0', t/log.t: req => 'GET /apache_pb.gif HTTP/1.0', t/parser.t:is $parsed->[0]->{'req'}, 'GET /apache_pb.gif HTTP/1.0'; t/parser.t:is $parsed->[1]->{'req'}, 'GET /apache_pb.gif HTTP/1.0'; t/parser.t:is $parsed->[2]->{'req'}, 'GET /apache_pb.gif HTTP/1.0'; t/parser.t:is $parsed->[3]->{'req'}, 'GET /apache_pb.gif HTTP/1.0';
--andオプションと--orオプション
andやorという形で条件を指定できます。
$ git grep -e 'GET' --and -e 'frank' --or -e 'john' log.ltsv:host:127.0.0.1 user:frank epoch:1372694390 req:GET /apache_pb.gif HTTP/1.0 stat log.ltsv:host:127.0.0.1 user:john epoch:1372794390 req:GET /apache_pb.gif HTTP/1.0 stat log.ltsv:host:127.0.0.1 user:frank epoch:1372694390 req:GET /apache_pb.gif HTTP/1.0 stat t/parser.t:is $parsed->[1]->{'user'}, 'john';
やってくれていることは、'GET'かつ'frank'、あるいは'jhon'の検索です。