|
>>2798 68user ご回答いただきまして、ありがとうございます。 >tail -f log | grep foo でできる環境もあります。FreeBSD と>Solaris2.6/8あたりはできるはず。 こちらの環境はSolaris2.6です。 tail -f log | grep foo だと意図した形で画面に表示されるのですが、 tail -f log | grep foo >> log2 とやるとlog2には何も出力されないんです・・・・・・ 何か環境が変なのかな? >tail 自体それほど複雑な機能ではないので、さくっと perl などで >自作するのがいいかもしれません。 そうですね。実はこの処理は大容量の性能関連のログから必要な 行を抽出/判定するための使用しようとしているのですが、Perl で作ったらログの行が多いからか、逆にそのツールが動いている 時間はCPUが100%になってしまったのでUNIXコマンドでできないかと 調べている次第です。(Perlはあまり詳しくないので私の作り方が マズイだけかもしれませんが) |
|
>>2799 HIDE > tail -f log | grep foo >> log2 なるほど。grep が出力をバッファリングしてるからですね。ちょっと調べて みた限りでは、/dev/stderr にリダイレクトしてもダメだし、バッファリング ありにするオプションはないようなので、 % tail -f log | perl -ne '$|=1;print if m/foo/' >> log2 てな感じで。 でも、grep でなんとかなりそうな気もするなぁ…。 |
|
>>2800 68user > /dev/stderr にリダイレクトしてもダメだし あー、grep 自体は stdout に出力してるだけだから、シェルで いくら stderr に振ってもどうにもならないですね。 というわけで、続きはここで。 http://pc.2ch.net/test/read.cgi/unix/1022769156/l50 2ch で質問するのなら最初からそっちで聞けっつーの。 |
|
>>2800 68user % tail -f log | perl -ne '$|=1;print if m/foo/' >> log2 をやってみたら、うまくいきました! いろいろ調べていただいたようで、ありがとうございました。m(__)m >でも、grep でなんとかなりそうな気もするなぁ…。 微妙〜なとこでうまくいかないのが悔しいですね。(^^;) でも、この件は急いでいたので大変助かりました。 |
|
>>2801 68user >2ch で質問するのなら最初からそっちで聞けっつーの。 至急性が高かったので両方に投稿しておりました。 大変失礼しました。すいません。 |
|
ここまでまるごとパクリっていうのも... http://www.apk.ne.jp/~yasya/ura/unix/index.html |