grepの文字数制限の警告(Ver8.31対応版)
目次− 動作環境− 検索− grep− grepの文字数制限の警告 grepをしたとき、以下のメッセージが出ることがあります。 この警告は、一行が32768文字を超える行をgrep検索したときに出るメッセージで、V8.11から出るようになりました。 V8.11よりも前では一行が約2000文字を超える行で同じ問題があり特に警告は出ていませんでしたが、V8.11で出るようになっています。 警告を出す理由は二つあって、1つは検索結果をそのままコピーして使うような場合、V8.11よりも前では結果が2000文字で切れていることを気づかずにコピーして使ってしまうことを、警告で知らせるためです。 検索に失敗しているというわけではなく、検索自体はされています。 結果の表示が切れている可能性があります。 もう1つは、検索文字列がとても長いときにヒットしないことがあるためで、正規表現を使う場合は検索対象が長くなることがありうるので警告を出しています。 例えば「a.*z」という検索文字列で、行頭から行末までが「axxxx…xxxxz」とすごく長く制限を超える場合、正規表現のマッチに失敗することになります。 設定で動作を変える方法があって、[その他]→[動作環境]の左下の「上級者向け設定」をONにして、[その他]→[動作環境]→[検索]→[grep]の「文字数制限の設定」で回避できる方法があります。 この設定を「制限大きい」にすると、一行が約1MBまで結果を表示し、多くの場合で大丈夫になります。 この設定を「制限なし」にすると、常に大丈夫になります。ただ動作が遅くなってしまいます。 ※ここの設定名は「常に文字数制限等を解除した状態で実行(遅くなります)」でしたが、V8.31で「制限文字数の設定」に変更されました。 |