English help on website



grepの文字数制限の警告(Ver9.34対応版)
目次動作環境検索grepの動作− grepの文字数制限の警告
grepをしたとき、以下のメッセージが出ることがあります。
grepの文字数制限を超えて検索された可能性があります。
[動作環境]→[検索]→[grep]に回避するための設定があります。
(ヘルプ参照)
この警告は、一行が約1MB(半角文字で100万文字程度)または、約32KB(半角文字で3万文字程度)を超える行をgrep検索したときに出るメッセージです。

警告を出す理由は二つあって、1つは検索結果をそのままコピーして使うような場合、100万文字(または3万文字)で切れていることを気づかずにコピーして使ってしまうことを、警告で知らせるためです。 検索に失敗しているというわけではなく、検索自体はされています。

もう1つは、検索文字列がとても長いときにヒットしないことがあるためで、正規表現を使う場合は検索対象が長くなることがありうるので警告を出しています。
例えば「a.*z」という検索文字列で、行頭から行末までが「axxxx…xxxxz」とすごく長く制限を超える場合、正規表現のマッチに失敗することになります。

設定で動作を変える方法があって、[その他]→[動作環境]の左下の「上級者向け設定」をONにして、[その他]→[動作環境]→[検索]→[grepの動作]の「文字数制限の設定」で回避できる方法があります。
この設定を「高速」または「従来の動作(バッファ大きい)」にすると、一行が約1MB(半角文字で100万文字程度)まで結果を表示し、多くの場合で大丈夫になります。
この設定を「制限なし」にすると、常に大丈夫になります。ただ動作が遅くなり、grep中はほぼ全ての操作はできなくなります。