dポイントプレゼントキャンペーン実施中!

おせわになります。シェルの初心者です。
基本的なことかもしれませんが・・
tail -f test.log | grep -e TEST >> tailgrep.log

のように、tailとgrepをパイプで連結した結果をファイルに書き出そうとしても、何も書き込んでくれません。
リダイレクトしなければ画面上にはちゃんと表示されますが、若しだめだったら、シェルなどで、解決方法をご存知でしたら、教えていただいて、助かります。

A 回答 (4件)

あ, あと, 標準出力をコンソールに出すかファイルにリダイレクトするかによってバッファリングが変わる可能性があります. コンソール

に出すときに十分出ているのであれば, この線は外れですが.
    • good
    • 2

>リダイレクトしなければ画面上にはちゃんと表示されますが


これは、
tail -f test.log | grep -e TEST
の場合は、画面に表示されるということですよね。
tail -f test.log | grep -e TEST >> tailgrep.log
それで、上記の時、tailgrep.logにかかれないのは、
アクセス権がないからと考えられます。
実行したディレクトリにアクセス権をもつ
ユーザーIDで実行して見て下さい。
(rootで確認できるならそれが、一番手っ取り早いですが)
    • good
    • 0

tail -f test.log | tee Hoge.txt | grep -e TEST >> tailgrep.log



上記のコマンドを実行して「Hoge.txt」には何か出力されています?

1.何も出力されていない
 test.log が期待した出力でない可能性が高いです。

2.テキストが出力されてる
 出力されてるテキストに「TEST」が含まれないいないことが原因!!
    • good
    • 2
この回答へのお礼

回答ありがとうございました
試してみます。

お礼日時:2009/02/19 19:39

うん? どういう動作を期待しているのかがわからないんですけど....


説明してもらえますか?
    • good
    • 0
この回答へのお礼

回答ありがとうございました
tailコマンドで、あるファイルを監視して、出てきたメッセージ中にはgrepコマンドで走査し、特定メッセージがあれば、別のファイルに出力するように動作させたい

お礼日時:2009/02/19 19:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!