VZEditor/VZ-PC98/MISC/WGREP.DOC
Yoshihiko Hyodo 6f06b9514a first commit
2024-11-18 22:21:26 +09:00

805 lines
29 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

===============================================================================
    アーカイブ内ファイルも検索可能な文字列検索・ユティリティ
           <<>>         
           リファレンスマニュアル
Copyright (C) 1991-93 by M.Ishida(wing)
NIFTY-Serve:QFF00306
日経MIX :wing
===============================================================================
■ はじめに
 本ユティリティはファイルの中から文字列を検索するツールです。文字列検索ツール
はすでに優れたものがいくつも公開されていますが、このツールは通常のテキストファ
イル内を検索することは勿論のこと、拡張子によりアーカイブファイル(いわゆるLZH,LZ
S,ZIP,ARCの4つの圧縮ファイル形式に対応)と判断された場合は、自動的に解凍し文字列
を検索する点に特徴があります。
 LZH,LZS形式のアーカイブファイルはWGREPに組み込まれた解凍ルーチンで処理するた
め特にアーカイバは必要としません。
 ZIP,ARC形式のアーカイブファイル内を検索するためには、別途ディスク上に専用アー
カイバが必要です。ただしその場合もメモリ上でのみ処理するような(トンデモナイ!?)細工
をしていますので、一時的にもディスク上にファイルの作成は行いませんし、またディ
スク容量に空きがなくても利用出来るようにしてあります。
■ 書式
 wgrep [オプション] 検索パターン 検索対象ファイル群
  [例]
     wgrep -i -t Z vz.doc
     wgrep -e Z -e vc *.txt
 ・各々のパラメータはスペースまたはタブにより区切られます。
 ・検索パターンにスペースまたはタブを指定したい場合には、引用符「'」または二重引
  用符「"」により囲って下さい。(スペースまたはタブの直後が'または"であると検索
  パターンの開始、その後'または"の直後がスペースかタブであると検索パターンの
  終了、と認識します。)
  [例]
  if (を検索したい場合は、
'if ('または"if ("とします。
 ・検索パターンには正規表現(付録参照)が利用出来ます。
  オプションを指定することで全角でも正規表現が可能です。
 ・検索対象ファイル群には検索対象となるファイルを並べて下さい。その際ワイルドカー
  ド(?、*)も利用出来ます。
  (ファイル名に対する正規表現はサポートしていません)
  検索対象ファイル群が指定されない場合は標準入力が使用されます。
 ・検索対象のファイルがアーカイブであり、その中の検索対象ファイルを限定したい
  場合はファイル名の後に「+」または「;」を付加し、続けて検索対象となるアーカイブ
  内のファイル名を「,」で区切って指定して下さい。
  「+」または「;」の指定が無い場合は、アーカイブ内の全ファイルが検索対象となりま
  す。
  このファイル名にもワイルドカードが利用出来ます。
  [例]
  test.lzh内のtest*.docとtest*.txtだけを検索対象としたい場合は、
test.lzh+test*.doc,test*.txt
または、test.lzh;test*.doc,test*.txtとします。
 ・複数のアーカイブファイルに対して、同じファイルを検索対象としたい場合は、ア
  ーカイブファイルを、「,」で区切って指定して下さい。
[例]
   test1.lzh内とtest2.lzh内の、test*.docとtest*.txtを検索対象としたい
  場合は、
test1.lzh,test2.lzh+test*.doc,test*.txt
または、test1.lzh,test2.lzh;test*.doc,test*.txtとします。
 (補足)
  ・アーカイブ内の検索対象ファイルを指定する場合以外はファイル名をカンマで区
   切ってはなりません。
  ・限定したファイルがアーカイブ内に含まれていなくても不都合はありません。
■ 機能
 指定されたファイルの中を検索して、パターンに一致する文字列を含む行を見つける
と、標準出力に出力します。
 指定されたファイルが以下に示す拡張子を持つとそれはアーカイブファイルと認識
し、ファイルを解凍してから検索します。(検索対象ファイルについてはgオプションを参考
にして下さい。)
 終了コードとして、一致行があった時は 0、一致行が無かった時は 1、エラーが発
生した時は 2を返します。
・アーカイブファイルと認識する拡張子
LZH,ZIP,ARC,LZSの種類
 ・アーカイブファイルの解凍方法
(1)LZH,LZSはWGREP内部に組み込まれた解凍ルーチンで解凍
  (2)ZIP,ARC,あるいはXオプション指定時のLZH,LZSは以下の外部アーカイバを起動
   して解凍
.LZH ・・・ LHA
.ZIP ・・・ PKUNZIP
.ARC ・・・ PKXARC(PKUNPAKが手元に見つからず、確認できなかったので)
.LZS ・・・ LHA
 ・アーカイバの検索順序
(1)環境変数ARCPATHで指定されたディレクトリ(例:ARCPATH=A:\UTL)
(2)カレントディレクトリ
(3)PATHで定義されたディレクトリ
以上のいずれにもアーカイバが存在しない場合はエラーメッセージを表示。
■ オプション
 サポートしているオプションは以下の通りです。現在の所はオプション文字の大文字
と小文字の区別はしていません。また、同じオプションを複数指定すると最後のものが
有効となります。
 <<オプション一覧>>
  -a   AND 検索
  -c マッチ行数の表示
  -dn  表示形式の指定
  -e パターン  検索パターンの指定
  -f ファイル名  検索パターンをファイルから読む
  -gn  検索の対象となるファイルの指定
  -hn  ファイル名タイトルヘッダ表示の表示条件を規定
  -i  英小文字と英大文字(半角・全角共に)を同一視
  -jn  同一視文字種の指定
  -k 拡張子群 検索の対象から除外する拡張子
  -l  マッチする行の存在するファイル名のみを表示
  -n  マッチ行を表示する際に行番号を付加
  -r  正規表現を使用しない
  -sn  行またがり検索とタブ、スペースを無視した検索
  -t  タグ情報の付加
  -u  該当のディレクトリ下の全てのディレクトリを検索
  -v  マッチしない行を表示
  -w  ワードサーチ
  -x  解凍にLHA.EXEを利用
  -?n ヘルプを表示
  --  レスポンスファイルの認識しない
 <<オプション説明>>
----------------------------------------
  -a        :AND 検索
----------------------------------------
 AND 検索を行います。
 複数の検索パターンを指定した時、通常はそのうち一つでも一致すればマッチしたこ
とになりますが、このオプションを指定すると、全ての検索パターンが一致しないとマ
ッチしたことになりません。
----------------------------------------
  -c        :マッチ行数の表示
----------------------------------------
 マッチした行数のみを表示します。
----------------------------------------
  -dn       :表示形式の指定
----------------------------------------
 表示形式を指定します。
 n には以下で必要なものを加算した値を指定します。
 例えば、-d10 ならば、下記で+2と+8の内容が有効になります。
 +1 : ファイル名表示を小文字で表示します。
 指定しないと、大文字で表示します。
+2 : t オプションを指定した時の表示を ファイル名:行番号 とします。
 指定しないと、 ファイル名 行番号 とします。
+8 : アーカイブファイル検索時にt オプションを指定した時のファイル名表示を
 アーカイブファイル名 +検索対象ファイル名 とします。
     LZH,LZSをWGREP内部に組み込まれた解凍ルーチンで解凍した時のみ
     指定しないと検索対象ファイル名だけとなります。
+16 : ファイル名タイトルヘッダ表示を簡潔に表示します。
----------------------------------------
  -e パターン     :検索パターンの指定
----------------------------------------
 検索パターンを指定します。
 このオプションはオプション列の最後でなければいけません。検索パターンが複数あ
る場合、あるいは、先頭が-である文字列を検索パターンとして指定する場合にはこの
オプションを使用して下さい。
 検索文字列を指定する時には必ずこのオプションが必要なわけではありません。
----------------------------------------
  -f ファイル名    :検索パターンファイル
----------------------------------------
 検索パターンを指定されたファイルから読みます。
 このオプションはオプション列の最後でなければいけません。-eオプションとの併用
は認められます。
 ファイルフォーマットは検索パターン、改行の繰り返しとして下さい。
 またパターンファイルの最大サイズは16384バイトです。
----------------------------------------
  -gn       :検索対象ファイル
----------------------------------------
 指定されたファイルの中で検索の対象となるファイルの指定をします。
 nの値は0から6まで範囲で、次のような意味を持ちます。指定しない場合はn=0が仮定
されます。
 0 : すべてのファイルを検索対象とする。(アーカイブファイルは解凍して検索する)
 1 : アーカイブファイルは検索対象としない
 2 : アーカイブファイルのみを検索対象とする。(解凍して検索する)
 3 : この値は指定しないで下さい。何もしません
 4 : すべてのファイルを検索対象とする。(アーカイブファイルも解凍せずに検索する)
 5 : アーカイブファイルは検索対象としない(1と同じ)
 6 : アーカイブファイルのみを検索対象とする。(解凍せずに検索する)
----------------------------------------
  -hn       :ヘッダ表示条件
----------------------------------------
 ファイル名タイトルヘッダ表示の表示条件を規定します。
 nの値は0から3まで範囲で、次のような意味を持ちます。指定しない場合はn=2が仮定
されます。
  0 : 検索したファイルはすべて表示する。
  1 : アーカイブファイル内で検索をスキップしたものは表示しない
  2 : 一致行があった場合のみ表示する。
  3 : ファイル名タイトルヘッダ表示は一切表示しない
----------------------------------------
  -i        :小文字・大文字を同一視
----------------------------------------
 英小文字と英大文字(半角・全角共に)を同一視します。
 このオプションは検索パターンの前になければなりません。
 このオプションを指定すると、例えば、grepはGREPと、と同じ扱
いになります。
----------------------------------------
  -jn       :同一視文字種の指定
----------------------------------------
 同一視文字種の指定をします。
 このオプションは検索パターンの前になければなりません。
 n には以下で必要なものを加算した値を指定します。指定しない場合はn=0が仮定され
ます。例えば、-j5 ならば、下記で+1と+4の内容が有効になります。
 +1 : 全角文字と半角文字を同一視
+2 : 全角ひらがなと全角カタカナを同一視
  +4 : 長音とマイナスを同一視
+8 : バビブベボをそれぞれヴァヴィヴヴェヴォと同一視
 Ver 1.51b までは、n で設定する 10から15 を AからF で指定していました。
    ただし、従来の指定もそのまま利用出来ます。
 ・全角文字と半角文字を同一視
   この指定をすると、例えば、grepはgrep、と、パソコンはパソコン、パソコ
  ンのどちらとも一致します。
同一視の対象となるのは、英数記号とカタカナですが、濁音、半濁音が単独で存
在する場合は同一には扱いません。
 例えばハソ゜とハソ゚は同じものとはみなしません。
iオプションと併用すると、grepはgrep、GREP、のいずれとも
マッチするようになります。
また、このオプションを指定することで全角文字も正規表現のメタ文字と認識可
能となります。
 ・全角ひらがなと全角カタカナを同一視
   この指定をすると、かたかな と カタカナ は同じ文字列と見做します。
 ・長音とマイナスを同一視
   この指定をすると、例えば、フォーラム と フォ-ラム は同じ文字列と見做しま
  す。
 ・バビブベボをそれぞれヴァヴィヴヴェヴォと同一視
   この指定をすると、例えば、ヴァージョン、ヴァージョン、バージョン、バージョンは同
  じ文字列と見做します。ただし、この指定をする際には必ず(1)の全角文字と半角文
  字を同一視する指定も同時に行わなければなりません。
----------------------------------------
  -k EXT1,EXT2,... :検索除外拡張子
----------------------------------------
 検索の対象から除外する拡張子をカンマで区切り定義します。ここで指定した拡張子
を持つファイルはアーカイブ内のファイルも含めて検索対象としません。
 例を次に示します。
-k EXE,COM,OBJ とすると、A.EXE、A.COM、A.OBJなどが検索対象から除外される。
----------------------------------------
  -l        :マッチファイル名表示
----------------------------------------
 マッチする行の存在するファイル名のみを表示します。
 cオプションとの同時使用時は無視されます。
----------------------------------------
  -n        :行番号の付加
----------------------------------------
 マッチ行を表示する際に行番号を付加します。
----------------------------------------
  -r        :正規表現未使用
----------------------------------------
 正規表現を使用したくない場合に指定して下さい。
 このオプションを指定しないと、例えば A.C は、AAC、ABC、ACC ……などにマッチし
ますが、指定すると A.C だけにマッチします。
----------------------------------------
  -sn       :改行・タブ・スペース無視
----------------------------------------
 行またがり検索とタブ、スペースを無視した検索をします。
 ここで、行またがり検索とは改行コードを越えて検索を行う事で、タブ、スペースを
無視するとは、比較の対象からタブ、スペースを除く事を言います。
 行またがりは1行分(改行コード1個分)しか対応していません。
 n には以下で必要なものを加算した値を指定します。指定しない場合はn=0が仮定され
ます。例えば、-s5 ならば、下記で+1と+4の内容が有効になります。
 +1 : 行またがり検索をする
+2 : タブを比較の対象としない
  +4 : スペースを比較の対象としない
 s4を指定して、検索パターンに 「n行」 を指定すれば、これは
「n行」にも「n 行」、「n 行」などにもマッチします。
 ☆検索パターンに\t、\sで指定したタブとスペースがある場合に、この指定をすると
 不正に動作する可能性があるため、このような利用はしないで下さい。
----------------------------------------
  -t        :タグ情報の付加
----------------------------------------
 マッチ行を表示する際にファイル名と行番号(いわゆるタグ情報)を付加します。
----------------------------------------
  -u        :サブディレクトリも検索
----------------------------------------
 該当のディレクトリ下の全てのディレクトリ、ファイルを検索対象とします。
 検索の対象となるディレクトリは以下の様になります。
    [ドライブ:][¥][ディレクトリ¥]ファイル名
| | |
| | +----ワイルドカードが利用出来ます。
| +----ディレクトリの先頭に\が無いとカレントディレクトリ下のディレクトリを検
| 索対象とします。
+----ドライブの指定が無いとカレントドライブを対象とします。
 例を次に示します。
a:\test.* Aドライブの全ファイル中でtest.*のファイル
\test.* カレントドライブの全ファイル中でtest.*のファイル
     a:\work\test.* Aドライブのディレクトリwork下の全ファイル中でtest.*のファイル
     work\test.* カレントドライブのカレントディレクトリのディレクトリwork下の全ファイル中で
             test.*のファイル
----------------------------------------
  -v        :非マッチ行の表示
----------------------------------------
 マッチしないすべての行を表示します。
----------------------------------------
  -w        :ワードサーチ
----------------------------------------
 ワードサーチを行います。
 単語の区切りは、Z エディタと同等です。
  ・スペース、タブ、改行、制御文字00h20h
  ・'$','_'を除く半角英記号
  ・全角文字
----------------------------------------
  -x        :LHA.EXE の使用
----------------------------------------
 WGREPが内部に持つLZH、LZSの解凍ルーチンでサポートしていないヘッダ、圧縮形式を
持つアーカイブはこのオプションを指定すると、LHA.EXEを利用して検索が可能になりま
す。
 ただし、このバージョン公開時においてLHAで解凍出来る圧縮形式は全てサポートして
いるはずです。
 なお、-x2 を指定すると LHA.EXE の新版ver.2.55等)を利用します。
 -x では新版のLHA.EXE では正しく動作しません)
----------------------------------------
  -?n       :ヘルプ
----------------------------------------
 簡単なヘルプを表示します。
 nに何も指定しない場合は、全てのオプションの簡単な説明を表示します。
 nに2を指定した場合は、
----------------------------------------
  --        :レスポンスファイル抑止
----------------------------------------
 次項で述べるレスポンスファイルの認識をせずに、検索ファイルと扱います。
 このオプションはレスポンスファイルの指定の前になければ、意味を持ちません。
■ レスポンスファイル
 ファイルの先頭が @ であると、レスポンスファイルとみなし、ファイルの内容をコマ
ンドラインに書いたものと同じに扱います。
 @resfile ならば、resfile がレスポンスファイルとなります)
 コマンドラインでは入力長の制限で、多くのファイルを明示的に指定して検索するこ
とは不可能ですが、レスポンスファイルを使えば、よりたくさんのファイルが指定出来
ます。(検索パターン、オプションを書いておくことも出来ます)
 レスポンスファイル中の改行はスペースとみなしますので、改行は無視してコマンド
ラインからの指定と同じように定義出来ます。ただし、一つのオプションの途中で改行
があってはなりません。
 例えば、
-k COM,EXE[改行]
,ARC
 はダメです。
 また、レスポンスファイル中に、@ があっても、それはレスポンスファイルとは扱わ
れません。(ネスト不可)
レスポンスファイルの最大サイズは16384バイトです。
■ 定義ファイル
 環境変数 WGREP が存在する時には WGREP.CFG という名称の定義ファイルにオプショ
ン指定を定義しておくことが出来ます。
 実際には検索パターン、ファイルも定義しておけますので コマンドラインから WGREP
とだけ入力して検索することも可能です。
 環境変数 WGREP の設定値は何でも構いません。
   SET WGREP=WGREP
 MSDOS Ver 3以上の場合は、WGREP.COMが起動されたディレクトリ、なければカレント
ディレクトリの順に、そうでない場合はカレント・ディレクトリからWGREP.CFGを検索
し、WGREP.CFGが存在すれば、そこでの指定が有効になります。
 なお、コマンドラインでのオプション指定が優先されます。
 定義ファイル中の改行に関する注記はレスポンスファイルと同じです。
 簡単なWGREP.CFGを添付しておきます。添付されていない場合も有ります。
■ 動作環境
 (1) 日本語MS-DOS汎用
 ただし、動作確認はPC9801RX2上のMS-DOS3.30Cで行っています。
(2) 動作を確認したアーカイバのバージョンは次の通りです。古いのもあると思い
ますが・・・
LHA Version 2.13
LHA Version 2.55x2 オプションの指定が必要)
PKUNZIP Version 1.02 10-01-89
PKXARC Version 3.5 04-27-87
 この場を借りてこれらのアーカイバの作者の方々に感謝の意を表します。
なお、本ツールはこれらのアーカイバのプログラム構造・処理系に極めて強く依存し
ていますので、これ以外のバージョン、あるいは動作環境によっては、予期せぬ動作と
なる可能性も否定できないことを、お断りしておきます。
 アーカイバを使用しない場合は、問題ありません。バグ以外は(^_^;)
■ 制限事項など
 (1) 明示的に指定できる検索ファイルの個数は最大512個です。
   (ワイルドカードにより指定された複数のファイルの個数は1個でカウント)
(2) 検索パターンの個数は最大128個、1つの検索パターンの最大長は256文字
  ですが、検索パターンにより可変となりますので、目安と考えて下さい。
(3) 起動時にはプログラム・サイズとは別に最低でも48Kバイトが必要です。
  行の最大長はメモリが十分あれば144Kバイト以上16,376文字でこれを越える
  ものは分割し処理します。メモリが少ないとこの最大長は減少し最低は4,088文字
  となります。
また、行数は429,496,725行までカウント可能でこれ以上になるとから再カウン
トとなります。(この制約が問題になることはまずないでしょう。)
この辺の記述はあまり気にしなくていいです。(^_^)
(4) アーカイブファイル内検索中のCTRL+Cの受付条件は次の通りです。
  ・アーカイブ形式がLZHまたはLZSのファイルでxオプションを指定していない場合は無条件
 xオプションを指定している場合はファイル毎の解凍中は受付だけに留め、解凍の区
 切りで有効となる。
 ・アーカイブ形式がZIPまたはARCのファイルは無条件
(5) ARCアーカイバ解凍時のメッセージの抑止はしていません。(^_^;)
(6) ZIP,ARC形式のアーカイブあるいはLZH,LZS形式であってもxオプションを指定した場
  合、アーカイブ内の検索ファイルを限定しても全てのファイルの解凍処理自体は
  行なっています。したがって、メリットは指定したファイル以外は検索しないこ
  とによる処理の高速化という点のみにあります。
■ その他
(1) 本ソフトウェアはフリーソフトウェアです。
  著作権は石田 暢彦(wing)が所有します。
   ただし、LZH,LZSの解凍ルーチンの著作権は吉崎栄泰氏が所有する
(2) 転載・配布は自由ですが、一言声を掛けていただけるとうれしいです。
(3) このプログラムを使用したことによって生じた損害は、全く保証しません。
(4) 作者は、このプログラムに不備があっても、それを訂正する義務を負いません
 が、努力はするでしょうから連絡をお願いします。
(5) 仕様拡張に関する意見は、私の技術と体力と気力が許す範囲で対応します。
 ◎ WGREP の最新バージョンは以下のネットで入手可能です。
 ・NIFTY-Serve FVC または FGALAP
    ・日経MIX v.c./lib
その他、常識的に取り扱って下さい。
■ 謝辞
 LZH,LZS形式のアーカイブファイル内を検索するために高圧縮書庫管理プログラムLHA.
EXEのソースを改造して利用しています。この優れたアーカイバをソースと共に公開され
ている吉崎栄泰氏に感謝の意を表します。
 また、バグのご指摘・御要望などを頂いた方々には本当に感謝しております。
■ 履歴
-- Ver 1.00 91/08/17 --
・基本機能のみを実装した公開バージョン
-- Ver 1.23 91/09/07 --
・一応、最低限の正規表現をサポートした。
・非アーカイブファイルがカレントドライブのファイルしか検索出来なかったものを改良。
・iオプションで全角の大文字・小文字も同一視するように変更した。
・全角文字と半角文字を同一視するjオプションを新設した。
・内部バッファ上での漢字分断時の不具合を対策
・アーカイブ内検索時のCTRL+C連続打鍵時の異常動作を対策した。
・その他、改良及び修正個所多数(^_^;)
-- Ver 1.24 91/09/10 --
・jオプションを指定しても長音は同一視していなかった。(例えば、本来マッチす
 べき アーカイブ と アーカイブ が同一視されなかった)
-- Ver 1.25 91/09/12 --
・文字クラス[...]の定義によっては不正な動作をする場合があったのを修正。
・アーカイブ内の検索対象ファイルを指定できるようにした。
-- Ver 1.26 91/09/14 --
・アーカイブ形式がZIPまたはARCの時は解凍中のCTRL+Cを有効とした。
アーカイブ形式がLZHまたはLZSの時はファイル毎の解凍中は受付だけに留め、解凍の
区切りで有効とした。これによりアーカイブ内の検索中の中断が可能となった。
 ・アーカイブファイル内検索時にjオプションが機能していなかったものを修正
・タブ、スペースを無視して比較するsオプションを新設
-- Ver 1.27 91/09/17 --
・複数パターン検索時にAND条件でマッチングするaオプションを新設
・ファイルリードバッファを外部に確保するようにした最大約64KB
・ある特定の条件EOFコードがファイル途中に存在する位置でハングアップする
 場合があるのを対策
-- Ver 1.27a 91/09/17 --
  ・iオプション、jオプションを指定しても正しく機能しない恥ずかしいバグ修正
-- Ver 1.27b 91/09/18 --
  ・DIETを常駐していると、ファイルが存在するのに検索出来なかったものを修正
-- Ver 1.27c 91/09/21 --
  ・正規表現のパターン解析のバグ修正
-- Ver 1.27d 91/09/22 --
  ・jオプションを指定しても半角全角の。「」、・が同一視されない不具合を修正
   (ダッテボウデータカツヨウハンドブックノコードヒョウガチガッテイタンダモノ。
    ちゃんと確認しなかった私が悪いが)
  ・iオプションを指定すると{|}`が検索出来ない不具合を修正
  ・パターンファイルの最大サイズを2048バイトとした。
  ・めったに表示されないエラーMSGを少し簡潔にした。
-- Ver 1.27e 91/09/23 --
  ・正規表現\cの処理が不正であったものを修正
  ・jオプションを拡張し、全角のひらがなを全角のカタカナと同一視出来るように
   した。
-- Ver 1.28 91/09/27 --
  ・LZH、LZS形式のアーカイブはWGREP自身に解凍ルーチンを持ち処理するようにし
た。これによりアーカイブ内の特定ファイルを検索する場合、高速になるなど、多
くのメリットが得られ、快適な検索が出来るようになった。
   ファイル・アクセス関連で少し手を抜いているので、より高速化が図れる道が残されてい
   る。
  ・jオプションをさらに拡張して長音とマイナスを同一視出来るようにした。
その際、Ver1.28で作り込んだ不具合修正もした。
  ・ファイル名ヘッダの表示形式を変更した。
・その他、改良及び修正個所多数(^_^;)
-- Ver 1.28a 91/10/01 --
  ・時としてハングアップする場合があったものを修正した。
-- Ver 1.28b 91/10/03 --
  ・正規表現[..]?の処理に不具合があり、ハングアップする場合があったものを修正
  ・$$という検索パターンを指定するとハングアップしていたものを対策
  ・正規表現のエラーチェックを少しだけ強化した。
-- Ver 1.28c 91/10/05 --
  ・ほんの少しだけメモリ削減
  ・書庫ファイルが壊れている場合にエラーメッセージが不正に表示される場合が
   あったものを修正
-- Ver 1.28d 91/10/09 --
  ・自己解凍ファイルの拡張子がLZHであるファイルを検索すると「書庫ファイルが
   壊れています」を表示していた。LHAでは解凍出来る。
-- Ver 1.28e 91/10/29 --
  ・ファイル末尾に改行が無いと不正な行を出力していた不具合を修正した。
  ・アーカイブ内のファイルを限定しても拡張子の無いファイルは検索してしまう場
   合があったものを修正した。
-- Ver 1.29 91/10/31 --
  ・jオプションを拡張してバビブベボとヴァヴィヴヴェヴォを同一視出来るように
   した。
-- Ver 1.30 91/11/06 --
  ・ディレクトリ下の全ファイルの検索を可能にした。
  ・1.28eでの対策は漢字が分断されて終了している場合に不十分であった。
  ・行末が改行で終了していない場合、努めて強制的に改行を入れるようにした。
  ・アーカイブファイル内のファイル中に改行が存在しない場合などにハングアップ
   する場合があったものを対策した。
  ・LZH形式のアーカイブファイル内に16384バイトより大きい無圧縮ファイルがある
   とハングアップしていた不具合を修正した。
-- Ver 1.30a 92/03/11 --
  ・起動アーカイバ無の時のメッセージ改善
-- Ver 1.31 92/03/12 --
  ・定義ファイルWGREP.CFGを導入
  ・拡張子による検索除外を可能にした。
-- Ver 1.32 92/03/15 --
  ・1行の最大文字数を拡張した。
-- Ver 1.33 92/03/16 --
  ・行またがり検索をサポート(シタツモリ)
-- Ver 1.34 92/03/17 --
  ・ファイル名に$を含むと正しくファイルヘッダ等を表示しなかったものを修正
(あー、はずかしい)
  ・LZH形式のアーカイブ・ファイル内で解凍後のサイズが16384バイトの倍数である
   ファイルを検索すると最悪ハングアップする場合があったものを修正した。
-- Ver 1.35 92/03/20 --
  ・標準入力からの入力をサポートした。
  ・終了コードの設定を行うようにした。
  ・その他の改良、修正多数
-- Ver 1.35a 92/03/21 --
・Ver 1.33の改良で[..]が不正に動作するようになっていたものを修正
-- Ver 1.35b 92/04/20 --
・-d1オプション指定時、-h2オプションを指定すると不正な動作をしていたものを修正
-- Ver 1.35c 92/05/04 --
  ・若干の手直し
-- Ver 1.35d 92/06/08 --
  ・行末が漢字で分断されている場合の行数をカウントを修正した。
-- Ver 1.35e 92/09/01 --
  ・メモリ確保サイズを修正
-- Ver 1.50 93/10/25 --
  ・気分転換のためバージョンを一気に更新
  ・対応する正規表現を増やした。また、ワードサーチもサポート
  ・検索パターン数の最大数を128とした。
  ・その他の改良、修正多数
-- Ver 1.51 93/11/14 --
  ・レスポンスファイルに対応
  ・その他多数の変更
   変更点は多いので詳細は省略(多すぎて忘れてしまったという話もある(^_^;)
-- Ver 1.51a 93/11/14 --
  ・検索ファイルの最大数を512個までに拡大
  ・アーカイブ内のファイルの限定が正しく行えないことがあったものを修正
  ・漢字1または2文字の検索文字列でハングアップしていた(^_^;)
  ・漢字2バイト目が 40h(@) の文字列の検索が出来なかったものを修正
-- Ver 1.51b 93/11/14 --
  ・検索文字列先頭の | 及び & は文字として扱うようにした。
  ・u オプションを指定すると検索を無限に行うなど不正な動作となっていたものを
   修正
-- Ver 1.51c 93/11/19 --
  ・先頭が @ の検索文字列を検索出来なかったものを修正した。
  ・jn の指定方法を変更した。(従来の指定も有効のはず)
  ・?2 オプションの追加
  ・u オプション時に存在しないファイル名を指定してもエラーにならなかった。
-- Ver 1.52 93/11/26 --
  ・正規表現とワードサーチを併用した時の検索が不正であったものを修正
  ・条件によっては検索を若干高速化した時(Ver 1.51)にとんでもない不良を作り込
   んだものを修正
  ・-e"検索文字列" も認めるようにした。
  ・ファイルの最後が漢字で分断されている時に最悪ハングアップしていたのを修正
-- Ver 1.53 93/12/01 --
  ・正規表現を使った OR 検索が出来なくなっていた(^_^;)
  ・その他若干の修正
* * * * * * * * * * * * * * * *
■ 付録
  本ツールで使用出来る正規表現は以下の通り。
(1) c
以下に示すメタキャラクタを除き文字 c は、その文字自身を意味する。
(2) \c
メタキャラクタとしての意味を打ち消す場合に使用し、文字cそのものを表わ
す。ただし、\tはタブ記号、\sは空白文字を意味する。
mオプションの項参照
(3) ^
    パターンの先頭に存在するときのみ、行の先頭を意味する。
(4) $
 パターンの最後尾に存在するときのみ、行の末尾を意味する。
(5) .
 改行を除いた任意の1文字を表す。全角文字も1文字と扱う。
(6) [...]
[] 内に含まれる任意の文字を表す。a-z、あ-お等のような範囲指定も可能。
(7) [^...]
 [] 内に含まれない任意の1文字を表す。(6)と同じく範囲指定も可能。
(8) r*
正規表現 r を0回以上繰返したものを意味する。
(9) r+
正規表現 r を1回以上繰り返したものを意味する。
(10)r?
 正規表現 r の0回または1回を意味する。
(11)r1|r2
 正規表現 r1 または r2 を意味する。
    (パターンファイル、コマンドラインからは、利用出来ません)
(12)\(r\)
 正規表現 r を出現順に最大9個まで記憶する。(タグ付き正規表現)
(13)\N
 タグ付き正規表現により記憶した N 番目の文字列を示す。
(14)r1&r2
 正規表現 r1 かつ r2 を意味する。
    (パターンファイルからは、利用出来ません)
===============================================================================