tail -fとgrepを組み合わせますか?


26

こんにちは、ログファイルを見続けたいのですが、無関係なものは見たくありません。「foobar」が含まれているものだけに興味があります。

だからファイルをテーリングしていたら

 tail file | grep "foobar"

-fオプションを追加しましたが、どういうわけか必要なものだけを表示する方法はありますか?grepまたは他の手法を使用していますか?


1
あなたの答えはすでにここに書かれているようです:stackoverflow.com/questions/5427483/…–
uSlackr

1
xyrの答えが問題にあるようです。
JdeBP

回答:


41

あなたはほとんど答えを書いた:

tail -f file.log | grep "foobar"

それでおしまい。


1
うーん、あなたは正しい、私はこれが機能すると期待していなかったと思う、私はまだしない、コマンドが実行を終了したときにパイピングが起こるはずではないのか?これはそうではないことを示していると思います、出力があるたびに起こりますよね?
user893730

3
いいえ、2つのプログラムを並行して起動し、2番目のプログラム(grep)はtailのSTDOUTが閉じるとすぐに終了します。これがパイプ、データストリーミングのすべてのポイントです:)
ラバコール

4
grepがパイプの最後の行である場合、その出力はラインバッファリングされるためtail -f、遅延ではなくライブのフィルタリングされた出力が表示されます。複数のgrepコマンドを使用する場合、出力をパイプ処理する場合は、--line-bufferedこの動作を維持するためにオプション(GNUまたはBSD grepを想定)が必要になることに注意してください。
ゴティ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.