FGALTS 6 FORUM の Opening Massage の切り出し こんにちは、こちらの FORUM には初めて書き込ませていただきます。 自分でスクリプトを書いていて、行き詰まってしまったので、質問をさせて 下さい。 生ログから、FORUM の Opening Massage を切り出すために、以下のような スクリプトを書いてみました。 ---------------------------------------------------------CUT HERE { if (($1 ~ "^>[gG][oO]" || $1 ~ ">[gG][oO]" ) && \ ($2 ~ "^[SFsf][A-Za-z]" && length($2) < 10)){ # メニューから番号で選んでフォーラムにたどり着いたものは無視 filename=ENVIRON["TMP"]"log\\"$2 # LOG をこんなところにつくる人はいないでしょう。 print "" >> filename print FILENAME,FNR >> filename # 一応、タグ do{ print $0 >> filename # オープニング getline }while ($1 !~ "[>>]" || $1 ~ "<" || length($1) > 20) print $0 >> filename } } ---------------------------------------------------------CUT HERE これで、LOG ディレクトリで jgawk -f top.awk *.log などとしてやることに より、 おおむね正しく切り出すことができます。FILEFIND とか、FTP など、 フォーラム以外のものも引っかかりますが、大したことはありません。 ただ、このスクリプトだと、例えば "GO FGALTS" とタイプしようと思ったのに、 間違って "GO FGALTL" とタイプしてしまい、次のコマンドプロンプトで打ち直 した場合など、早い話、GO コマンドが連続したとき、偶数番目の GO コマンド が無視されてしまいます。 何とか、これを回避する方法はないものでしょうか。ungetline みたいなこと ができればよさそうな気もするのですが、アルゴリズムを根本から変えた方が いいんでしょうね。 もう一つ、とてつもなく難しそうな気がするのですが、メニューから番号で選 んでフォーラムにたどり着いたものもサポートしてやりたいのです。この場合、 直近のコマンドプロンプトから出力させたいのですが、どうやったらよいので しょうか。条件式をこねくり回して、その上パイプやテンポラリファイルを組 み合わせれば、何とかなるでしょうか。 どうかお知恵をお貸し下さい。                                 としき