通信プログラムと通信サービスとの組み合せによっては、ログファイル(通信のやり取りを記録するファイル)の中にesc で始まる変なストリングが混ります。これはカーソルを上下左右に動かしたり表示を消したりするために向こうのコンピュータがMS-DOSに対して送って来た命令で、 escシーケンスとよばれています。 escシーケンスは出力やメッセージと区別ができないのでいっしょに記録されてしまいます。応答を完全に記録するためにはいっしょになっていた方がいい場合もありますが、ふつうはこれがなかなかやっかいで、プリントしたりエディタにかけたりすると見えてしまったり、1行が長くなりすぎていろいろなプログラムに読み込もうとすると行末を切り捨てられてしまったり、苦労が耐えません。
escシーケンスを消そうと思って、まずエディタに掛けてみました。そうしたら 500以上バイトの長い行があって、いつも使っているエディタでは行末を捨てられてしまいました。次に sedスクリプトを切って sedに掛けてみました。 escシーケンスにはいろんな形式のものがあるので、そのそれぞれに対処できるようにしたらスクリプトは6行になりました。そうしたら sedが動かなくなりました。今使っている sedは、2行以上のスクリプトに通す場合は各行の処理の結果をメモリに溜めているようです。ログファイルは結構大きくて1万以上バイトにもなるので(その一部が escシーケンスなので困ります)収まりきれなかったようなのです。
こんなわけで、とうとう専用のプログラムを作らなければならなくなりました。こうしてできたのがIHE つまり escシーケンスを取り除くプログラムです。 |