◀一般トップへ
  • 3005 Grep出力結果のバグっぽい仕様の変更(案)
    • 3015 [要望] Grepの仕様変更
    • 3066 Re:Grep出力結果のバグっぽい仕様の変更(案)
      • 3069 Re2:Grep出力結果のバグっぽい仕様の変更(案)
  • [3005] Grep出力結果のバグっぽい仕様の変更(案) もか 2003年06月10日 11:03

    Grepのバグのような仕様を以下のように変更したいと思います。
    通常利用時の表示内容はあまり変わることはないと思いますが、エラーや、表示制限を超えた場合などの振る舞いが変わります。
    仕様変更に問題や疑問などあれば、レスをお願いします。

    ■結果出力が該当部分の場合のヒット後の次の検索開始位置
    変更前:
     前のヒット開始位置+1
    変更後:
     検索にヒットした文字列の次の文字
     (もちろん正規表現により長さ0にマッチした場合は除く)

    ■結果出力が該当部分の場合の表示文字列の内容
    変更前:
     単語単位または通常検索のとき、ヒットした文字列の内容ではなく、検索キーを表示していた
    変更後:
     実際にヒットしたファイル側の文字列を表示するようにします。

    ■上2つの例
    検索文字列「aaa」
    ファイルの内容「aAaAAA」
    大文字小文字を区別しない
    該当部分を表示

    変更前:
    ・( 1,1 ): aaa
    ・( 1,2 ): aaa
    ・( 1,3 ): aaa
    ・( 1,4 ): aaa
    変更後:
    ・( 1,1 ): aAa
    ・( 1,4 ): AAA

    ■文字コードセットを自動選択にし、ファイルが読み込みエラーになった場合の振る舞い
    *ファイル検索モード
    変更前:
    以下のようなエラーを表示し、見つかったファイル数にカウントされませんでした。
    例:文字コードの判別処理でエラー [C:\MyData\Test.txt]

    変更後:
    文字コードを表示する部分が、(DetectError)になります。
    ファイル自体は存在しているので、カウントには含まれるようにします。
    例:C:\MyData\Test.txt [(DetectError)]

    *通常検索
    変更前:
    ファイル検索モードと同じエラーを返します。
    例:文字コードの判別処理でエラー [C:\MyData\Test.txt]

    変更後:
    ファイルが開けなかったエラーメッセージを返します。
    これは、文字コードセットを固定(SJISなど)で指定し、ファイルが開けなかった場合のエラーメッセージと同じ表示です。
    例:file open error [C:\MyData\Test.txt]

    ■ヒットした文字列の表示文字数制限の変更
    該当行の場合は、行頭からの表示されるバイト数、
    該当部分の場合は、実際にヒットした文字列のうちの表示されるバイト数です。
    変更前:
    結果表示が該当行の場合、1000バイトまで
    結果表示が該当部分の場合、2000バイトまで
    変更後:
    結果出力形式がノーマル表示の場合、2000バイトまで
    結果出力形式がファイル毎の場合、2500バイトまで
    すなわち、依存するオプションが変わります。

    ■ファイル検索モードの場合のオプションの出力
    変更前:
    未使用のオプションも結果に出力していました。
    変更後:
    ファイル検索モードでは効力のないオプションは非表示にします。

    以上です。
    • [3015] [要望] Grepの仕様変更 もか 2003年06月14日 13:29

      表示というよりGrepそのものの仕様変更の要望です。

      ■サブフォルダから検索する場合の検索順序
      現在は、
      サブフォルダのファイル → 今の階層のファイル
      という順に検索しますが、逆のほうがいいとおもいます。
      >DIR /S /B *.*
      と検索した場合もサブフォルダは後に表示します。

      ■ファイル名のセパレータ
      複数の指定を行うときのセパレータが「,;スペース」ですが、
      その3種類ともWindowsファイル名の一部となりうるため、問題があります。
      「file name.txt」というファイルを検索対象にしたい場合は、DOS名の「FILENA~1.TXT」のようにして検索しないといけないみたいです。
      そこで、以下のどちらかにしてほしいです。
      ・""で囲うとその中を1つの区切りと認識
       例:
       「"file name.txt" *.html」
      ・セパレータを「|」に変更する
      例:
       「file name.txt|*.html」
    • [3066] Re:Grep出力結果のバグっぽい仕様の変更(案) wmlhq 2003年07月09日 12:40

      ▼ もかさん
      > ■結果出力が該当部分の場合のヒット後の次の検索開始位置
      > ■上2つの例

      この2つは、grepの仕様から外れると思います。

      > ■文字コードセットを自動選択にし、ファイルが読み込みエラーになった場合の振る舞い
      > 例:C:\MyData\Test.txt [(DetectError)]
      > 例:file open error [C:\MyData\Test.txt]

      できれば、bregexpの側で日本語エラーを返してほし。

      > ■ヒットした文字列の表示文字数制限の変更

      利点がよくわかりません。

      > ■結果出力が該当部分の場合の表示文字列の内容
      > 変更前:
      >  単語単位または通常検索のとき、ヒットした文字列の内容ではなく、検索キーを表示していた
      > 変更後:
      >  実際にヒットしたファイル側の文字列を表示するようにします。

      > ■ファイル検索モードの場合のオプションの出力
      > 変更前:
      > 未使用のオプションも結果に出力していました。
      > 変更後:
      > ファイル検索モードでは効力のないオプションは非表示にします。

      検討が必要ですね。
      • [3069] Re2:Grep出力結果のバグっぽい仕様の変更(案) げんた 2003年07月09日 22:08

        ▼wmlhqさん
        >> ■文字コードセットを自動選択にし、ファイルが読み込みエラーになった場合の振る舞い
        >できれば、bregexpの側で日本語エラーを返してほし。
        bregexpはメモリ上の文字列に対して処理を行うので,ファイルの読み込みエラーはbregexpとは無関係ですよね.

        >> ■ヒットした文字列の表示文字数制限の変更
        >
        >利点がよくわかりません。
        あまり意味はないかと.まあ前より長くなった(と思う)から気にしないのが吉(^^;)