C:\>dir c:\bin | grep -i "grep"
1992/05/03 06:47 78,419 CGREP.EXE
1994/10/06 13:01 50,672 DGREP.EXE
1994/06/02 18:50 90,959 EGREP.EXE
2003/04/14 00:00 80,412 FGREP.EXE ;サイズが違うのでリネームではない
1994/06/02 18:50 90,959 GREP.EXE
1993/04/11 16:05 23,997 IZGREP.EXE
1994/04/30 10:07 66,700 YGREP.EXE
使い分けているわけでもないです。ここ1週間弱を除けば、1年ぐらい
どれも使っていないような気がします。どれにも、とりわけバグとかあるように
感じたことはありません。気づくのがけっこう大変だとは思いますが。
作者様たちに感謝、感謝です。
ygear.def by とらじにはメニューを仕込んであるので、特定のプロジェクト
の時に、ygrep.exeを集中的に使う。
ふだんは、grep.exe か izgrep.exe (高速)。前後とかの文脈(コンテクスト)
を見るときには、cgrep.exe でしょうか。
プログラムのソースには、メタ文字のたぐいがけっこう入っているときが
あります。こういう場合には、(頻繁ではなかったですが)fgrep.exe のおでまし
となっていたと思います。
純粋な実行ファイルではありませんが、grep.def by tomo も、昔はよく
使いました。^NG と、ちゃんとキーアサインしています。
余談&脱線。先日、「ワイルドカードの展開は誰がする?」という弱い疑問を
持ったとき、MS-DOS Encyclopedia と Undocumented DOS を "wildcard" でグレップ
しました。期待していた解答はなかったのですが、ちらちら関連個所を読んで
いて、以下を思いつきました。
normal: mov ah,4eh ;FINDFIRST
mov dx,offset FILE
mov cx,0
int 21h
FILE db '*.*',0
blt.com (お気に入りツール by Bunta)です。簡易 dir コマンド。
4Eh, int 21h が、ワイルドカードを使ってる。つまり、元はmsdos.sysが
配置したベクターテーブルの先のルーチンがワイルドカードの展開をしている
(Encyclopediaによれば、DOS では、*.* は、????????.???に展開される
らしいのだが)。
ですから、誰が展開する? に対する回答は、【その場合】DOSエミュ
ということになると思います。
が、8.3以上のファイル名を受け付けるためには、、、。
決まったやり方があるのでしょうが、大変そうですねぇ、という感想でした。
因みに、blt.comには、LFNを受け付ける兄貴、bll.comというのもあります。
Windows仕様の長いファイル名を受け付けるやつ。
normal: mov ax,714eh ;FINDFIRST
mov dx,offset FILE
call SET ;set cx, si, di
int 21h
こちらでは、714eh というファンクションになっているようです。
つまり、OSが片づけてくれてるんですね。VTDOSでは、どちらも完全に
動いています。
もちろん、VTDOSは、ときどき落ちるのですが。