|
Siさん
>(出力が2方向のstdout, stderrに分かれている件、再び)
> こう云う出力方法をするコマンドラインツールってあまりないのかな?変態仕様 ^^;
変態なことはないですよ。 よく考えてみれば(ちょっと調べたのですが)、
「たとえばパイプで、エラーメッセージが次への入力にならないように」 という
stderr の原理に則った正しい使い方ですよね。
> ^M のゴミ対策も目途が立ちましたのでそろそろ正式公開の方向に進もうかと
いいですね。
> いま自分で気になっているのはログファイルの最後が改行なしで終わっている
> ケースの対応です。
いちおうフィルターは勝手に入力を破棄したりしてはいけませんので、許して
やってそのまま出力のほうが理想でしょう。同じようなのがsedのNコマンドにあ
ったりします。昔のsedは、最終行でNができない(次行のパターンスペースへの
追加)状況下だと、すでにあるパターンスペースを破棄する仕様でした。なので
「$!N」 (最終行でなければN)というのが慣用句でしたが、「あの、Nコマン
ドの仕様変えませんか? 」と誰かが言い出し、GNU sedでは、そうなってます。
最終行処理がスクリプト上まずくても、とりあえずパターンスペースを吐き出す
仕様、というわけです。
で、その問題がうちで起こるかは、下のように調べました。
C:\TK\VZLOG\DC>Wild -D -R "tail -1 $f >>c:\kek" *.log
<< 環境変数対応 Wildcard 展開プログラム Ver.1.34 >>
Copyright (c) 1996-98 by namazu & Si
DEBUG MODE:tail -1 C:\TK\VZLOG\DC\01\DC01~012.LOG >>c:\kek
DEBUG MODE:tail -1 C:\TK\VZLOG\DC\02\DC02_968.LOG >>c:\kek
DEBUG MODE:tail -1 C:\TK\VZLOG\DC\02\DC02_981.LOG >>c:\kek
(以下50行続く)
これがうまくいってる瞬間といったらシアワセの一言。 「tail -1」で最終行
出力です。 普通にワイルドカード使うと、(別件ですが)昔のsedと同じく、全
部の入力ファイルの最後だけを出力してしまうので意味をなさない(各ファイル
の末尾がみたいので) 。 で、ディレクトリ再帰つきワイルドカードの展開!!
機械が書いてくれるバッチファイル!! ワイルドくん、き、君はエライ! 最高!
ああ、気持ちよかった。
で、結論:エアクラを使った時期もあったのですが、僕の手元のログには
あいうえお[EOF]
はなかったですね(なんやねん)。ま、これは行儀の悪いファイル管理ですから。
(^^;ゞ
> テキストデータを NIFTY ログ形式に加工して活用されているみなさんが、最終
> 行にちゃんと改行を入れてくれれば問題ないのですが、念のためチェックするル
> ーチンを入れた方が良いかどうか思案してます。
「念のために」入れられるものなら。少なくとも捨てないで m(__)m
> 文太さんや konno さんのおかげで久々のバージョンアップとなりそうですが、
> 何かご希望とかあればいまのうちにどうぞ。
複数会議室のログも試しました。 完璧でした。今のところ、logsortwはすでに
完成されているように見えてます。m(__)m
|
|