(Windows)Windowsでgrepする = findstr
2008年01月11日
カテゴリー: プログラミング
Windowsにはgrepがありません。
うっかりこういうことをしてしまう。
C:>net start |grep -i tel
'grep' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
いつもなら、あ〜無いんだった。と別の方法に逃げるところですが、今日はついムキになってgrep探しの旅です。
いくらGUIなWindowsでも、grepぐらいある(誰かが作っている)のは、うすうす気づいていました。ググルと、トップにvectorヒット。「Windows版Grep(コマンドライン用)」。お、いきなりnot GUIなツールがヒットです。
説明を読んでみる。“正規表現”“再帰”。うむ、これでよさそう。早速ダウンロードして解決、と思いきや。
パイプが使えない。
なんでだよー。パイプで使うよね。使えなきゃダメっす。ということで却下。
他にもGNU grepってあるからこれか!と思い試すとインストールした上、.netが必要。そしてまたしてもパイプ非対応。
うむむー、パイプ使う人は小数派なのか・・・
グーグル結果を眺めていると、ありました。
findstrで正規表現を検索する
http://www.atmarkit.co.jp/fwin2k/win2ktips/511findstr/findstr.html
まんまgrepじゃないですか。
C:>net start|findstr -i tel
Background Intelligent Transfer Service
Telephony
Telnet
解決しました。






参考にさせていただきました。感謝します。
うちはついでに
%%WINDWOS%%/system32/grep.bat
って作って
中身に「findstr -i %1」を記述したファイルを置いてます。
これで
>dir | grep aaa.txtが
>dir | findstr -i aaa.txtに置き換わってちょっと幸せ
あ、これは知ってると、ちょっと嬉しいですね。
ありがとうございました。
grepで探すからまともなものが見つからない。unix-like, tool とかで探せば、grepだけじゃなく、unix-likeなコマンド群がセットで見つかる。
findstr optionとかgrepと違いすぎて俺には違和感あった。