- ベストアンサー
Windows2000のコマンドプロンプトで使えるgrep
Windows2000のコマンドプロンプトで使えるgrepを探しています。どなたかご存知ありませんか? よろしくお願いします。 (batファイル内にgrepを記述して連続処理させたいのですが。。)
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
Grepは、いくつかの方法で利用できるようになります 1.MicrosoftのWindows Services for UNIXに含まれるGrepを利用する。 これを利用するとUNIX互換機能が(制限もありますが)利用できるようになります。grepもこれに含まれています。ダウンロードするかCD-ROMを1575円(税込み)で入手できます。 詳細はマイクロソフトのサイトを参照してください。 http://www.microsoft.com/japan/windows/sfu/ 2.GnuWin32のgrepパッケージを利用する gnuのwin32プラットフォーム用のツールにgrepが含まれています。Windows 95/98/Me/NT/2000/Xpで利用することができます。(Setupパッケージを利用すると必要なDLLも含まれており、同時にインストールしてくれます。) インストールされた先にパスを通すなり絶対パス指定もしくは相対パス指定でgrepをコマンドプロンプトから実行できます。コマンドラインヘルプが日本語のものが用意されています。 詳細はGnuWin32のページを参照してください。 http://gnuwin32.sourceforge.net/ パッケージのページ http://gnuwin32.sourceforge.net/packages.html grepパッケージのページ http://gnuwin32.sourceforge.net/packages/grep.htm 3.cygwinのgrepパッケージを利用する UNIX/Linux互換機能を実現するためのAPI(DLL)を利用して、UNIX/Linux互換環境を実現している(広い意味でエミュレータ)パッケージcygwinもgrepを含んでいます。 gnuwin32と同様にインストールされた先にパスを通すなり絶対パス指定もしくは相対パス指定でgrepをコマンドプロンプトから実行できます。 日本語の解説書も何冊か出版されています。 詳細はCygwinのページを参照してください。 http://cygwin.com/
その他の回答 (7)
findstr は駄目なのかな? 2バイト文字は正規表現では使えないようですが。
お礼
回答ありがとうございます。
- Toshi0230
- ベストアンサー率51% (836/1635)
話が脇にそれますが…… > FINDは(私の認識だと)ファイルを探すコマンドだと思うのですが、ファイルの中の文字列まで見つけることができるのでしょうか? Unix系OSのfindはおっしゃるとおりディスクからファイルを検索するコマンドですが、Windowsのfindはファイル中の文字列を検索するコマンドです(正規表現は使えないので"grep"とはいえないでしょうね(^^;)。 > vector等で探してもどれもみなコマンド実行時にウィンドウが開いてしまうものばかり URLの提示先がまずかったですかね。 こんなのもあるんですが。(Win2kでの動作は未確認) http://www.vector.co.jp/soft/win95/util/se015011.html
お礼
回答ありがとうございます。
Vectorで見つけたものですが、これなんていかがでしょう。sjisにしか対応していない のが欠点ですけど、至極伝統的なgrepだと思います。ちゃんとマルチバイト対応で、かつ 正規表現も通ります。XPのコマンドプロンプトでも動きました。 個人的には、Delphiに付属してきたものを使っています。これもやはり余計な機能がない 古式に則ったgrepです。
お礼
回答ありがとうございます。
- goohyokochi
- ベストアンサー率50% (5/10)
私はアンカーシステムズのPeggy Proという統合環境型エディタを使用していますが、コマンドプロンプトで使用できそうなgrepが付属しています。 私はほとんど統合環境上で、GREPなどしてしまうので、実際コマンドラインで使ったことはありませんが。 他にもUNIX系のコマンドがいくつかあるようです。 4,500円のツールですが、機能制限なしの試用期間もありますので、試されてはいかがでしょうか。
お礼
回答ありがとうございます。 ご紹介のものを見てみたのですが、諸事情により費用が発生するのはまずいので、見送りました。情報ありがとうございました。
- Toshi0230
- ベストアンサー率51% (836/1635)
手っ取り早い方法は以下の3つでしょうかね。 方法1:標準のFINDコマンドを使用する (No.1さんの回答に同じ) 方法2:vector等でgrepのWindows移植版を探してインストールする http://search.vector.co.jp/search?query=grep 方法3:Cygwinをインストールする (No.2さんの方法に同じ)
お礼
回答ありがとうございます。 vector等で探してもどれもみなコマンド実行時にウィンドウが開いてしまうものばかりでbat処理には向かないみたいです。。単純なコマンド(exeファイル)のみのモノって無いものですかねぇ。。.
- brax3
- ベストアンサー率36% (17/47)
CygwinというWindows上で動くUnixエミュレータを使えばUnixのgrepが使用できます。
お礼
回答ありがとうございます。 windows上の外部コマンド(プログラム)と連携させて処理したいのとエミュレータを動かせるほどマシンパワーが無いのです。。。(;_;)
- kaiu
- ベストアンサー率20% (65/315)
コマンドプロンプトのFINDコマンドで バッチ作成できるのでは。 見当違いでしたらごめんなさい。
補足
回答ありがとうございます。 目的は一つの巨大な解析結果のファイル(テキストファイルで約50MBくらいある)の中に任意の文字列(例えばERRなど)が有るか無いかをチェックしたいのです。 FINDは(私の認識だと)ファイルを探すコマンドだと思うのですが、ファイルの中の文字列まで見つけることができるのでしょうか?
お礼
回答ありがとうございます。