grepの文字数制限の警告(Ver8.91対応版)
目次動作環境検索grepの動作− grepの文字数制限の警告
grepをしたとき、以下のメッセージが出ることがあります。
grepの文字数制限を超えて検索された可能性があります。
[動作環境]→[検索]→[grep]に回避するための設定があります。
(ヘルプ参照)
この警告は、一行が32KB(半角文字で3万文字程度)を超える行をgrep検索したときに出るメッセージで、V8.11から出るようになりました。
V8.11よりも前では一行が約2000文字を超える行で同じ問題があり特に警告は出ていませんでしたが、V8.11で出るようになっています。

警告を出す理由は二つあって、1つは検索結果をそのままコピーして使うような場合、V8.11よりも前では結果が2000文字で切れていることを気づかずにコピーして使ってしまうことを、警告で知らせるためです。
検索に失敗しているというわけではなく、検索自体はされています。
結果の表示が切れている可能性があります。

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

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

※ここの設定名は「常に文字数制限等を解除した状態で実行(遅くなります)」でしたが、V8.31で「制限文字数の設定」に変更されました。