grep といえば、No.07080
える さん 00/12/25 18:29
 
こんな経験をしたことがあります。

1. 沢山のファイルを検査対象にします。
  たとえば、C:\Program Files\Microsoft Platform SDK\Include\*.h

2. そこそこの数がヒットする文字列で grep します。
  たとえば、FACILITY

3. grep 中、処理中として [grep "FACILITY" ...] というタイトルの
  ウィンドウがでてきて検索が開始されます。

4. grep の処理中に、このウィンドウで 160 を検索します。

5. grep が完了する。

という時に、私の意図は FACILITY の検索結果から、160 を
含むものだけを再抽出するのに近いものを望んでいるのですが、
この作業手順だと、3. から 4. の間に処理されたファイルは
"FACILITY" を検索した結果なんですが、4. から 5. の間に処理
されたファイルは "160" を検査した結果になってしまっています。

v3.05 で確実な再現性があります。

--grep 結果ウィンドウの一部
adoint.h(573): adErrSchemaViolation=     MAKE_HRESULT(SEVERITY_ERROR, FACILI
TY_CONTROL, 0xe8a),
adoint.h(574): adErrSignMismatch=     MAKE_HRESULT(SEVERITY_ERROR, FACILITY_
CONTROL, 0xe8b),
adojet.h(1355): class DECLSPEC_UUID("DE88C160-FF2C-11D1-BB6F-00C04FAE22DA")
asptlb.h(3734): DEFINE_GUID(CLSID_Server,0xA506D160,0x25E0,0x11D0,0xA5,0x5F,
0x00,0xA0,0xC9,0x0C,0x20,0x91);
--grep 結果ウィンドウの一部 ココマデ

上2行(およびそれ以前)は FACILITY での grep が進んでいる途中ですが、
4. の操作が入ったため、下2行以降は FACILITY ではなく 160 を含む行が
表示されていってます。

[ ]
RE:07080 grep といえば、No.07098
秀丸担当 さん 00/12/27 18:22
 
>この作業手順だと、3. から 4. の間に処理されたファイルは
>"FACILITY" を検索した結果なんですが、4. から 5. の間に処理
>されたファイルは "160" を検査した結果になってしまっています。

やってみたところ、再現しました。
これはまずいです。
なんとか修正するか、検索はできないようにするか、しようと思います。

[ ]