開発自体は Eclipse を使っているのだが、project 全体に対して grep をかけたい、なんてニーズは相変わらずあり。
強力な Eclipse の検索機能を使えヨ。ってなもんだが、勝手知ったる emacs の grep を使ったりもすることも多い。
なんだかんだで M-x grep。
grep そのものは gnu の grep.exe を使用しているのだが。
それでついさいきん気付いたのだが eshell で grep かけると grep-mode の buffer が開く。これはありがたい。
grep buffer ならば目的のファイルにすぐ飛べるから。ようするに M-x grep の結果画面が eshell のコマンドラインから grep しても開くということ。
ところがこれが、どうにもこちらの思いどおりにはならない。
普通に、
いろいろやってみたところ、
くやしいなぁ、これ使えたらすごくラクなのに。
追記: (07.10.22(mon)-16:44)
「*」の指定ですが、その後やってみても、うまくできず。
いろいろやってみたところ対象となるファイルの数に関係があるかもしれない、ということになりました。
ワイルドカードでもある程度絞り込んで指定すると、うまく実行されるようになるので。 普通のコマンドラインでは起こらないので、eshell の内部コマンドとしての grep ではそういうことが起こるのかもしれないです。
強力な Eclipse の検索機能を使えヨ。ってなもんだが、勝手知ったる emacs の grep を使ったりもすることも多い。
なんだかんだで M-x grep。
grep そのものは gnu の grep.exe を使用しているのだが。
それでついさいきん気付いたのだが eshell で grep かけると grep-mode の buffer が開く。これはありがたい。
grep buffer ならば目的のファイルにすぐ飛べるから。ようするに M-x grep の結果画面が eshell のコマンドラインから grep しても開くということ。
ところがこれが、どうにもこちらの思いどおりにはならない。
普通に、
$ egrep -r -e 'hoge' *としても、うまく行かない。
いろいろやってみたところ、
$ egrep -r -e 'hoge' .ならば良いみたい。なんじゃそりゃ、 ファイルの指定に * が使えない。つまりは、*.java などできないみたい。非常に困るのだが、なんでそんな仕様になっているのか。
くやしいなぁ、これ使えたらすごくラクなのに。
追記: (07.10.22(mon)-16:44)
「*」の指定ですが、その後やってみても、うまくできず。
いろいろやってみたところ対象となるファイルの数に関係があるかもしれない、ということになりました。
ワイルドカードでもある程度絞り込んで指定すると、うまく実行されるようになるので。 普通のコマンドラインでは起こらないので、eshell の内部コマンドとしての grep ではそういうことが起こるのかもしれないです。
c:/fzk/fzk/properties/sql $ grep -rnH -e "ZZ" *.sql Spawning child process: exec format error c:/fzk/fzk/properties/sql $ /bin/grep.exe -rnH -e "ZZ" *.sql .... 結果は OK


コメントする