回答:
の出力をgrep
にパイプtail -f
するだけです。また、tail -f
機能をフィルタリングとカラーリング、特にマルチテールと組み合わせたプログラムもあります(例)。
これらすべての人々がを使用するようtail -f
に言っているのを見ますが、その制限が好きではありません!新しい行も見ながらファイルを検索する私のお気に入りの方法(たとえば、cronジョブを介して定期的に実行されるプロセスのリダイレクトされた出力が追加されるログファイルを通常使用します):
tail -Fn+0 /path/to/file|grep searchterm
これは、GNU tailとgrepを想定しています。テールのマンページ(GNU coreutils、私のv8.22)からの詳細のサポート[ https://www.gnu.org/software/coreutils/manual/coreutils.html]:
-F same as --follow=name --retry -n, --lines=K output the last K lines, instead of the last 10; or use -n +K to output starting with the Kth. If the first character of K (the number of bytes or lines) is a '+', print beginning with the Kth item from the start of each file, otherwise, print the last K items in the file. K may have a multiplier suffix: b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y. With --follow (-f), tail defaults to following the file descriptor, which means that even if a tail'ed file is renamed, tail will continue to track its end. This default behavior is not desirable when you really want to track the actual name of the file, not the file descriptor (e.g., log rotation). Use --follow=name in that case. That causes tail to track the named file in a way that accommodates renaming, removal and creation.
したがって、私のコマンドの末尾部分はに等しくtail --follow --retry --lines=+0
、最後の引数はゼロ行をスキップして先頭から開始するように指示します。
tail -f access | awk '/ADD/{print $0}'
上記を使用して、私は通常それを使用します。
できます。ただし、出力は瞬時ではなく、パイプを介してバッファリングされることに注意してください。
tail -f
1つのウィンドウで実行しtail -f logfile | grep pattern
、別のウィンドウで実行します。を含む行がpattern
両方のウィンドウに同時に表示されるとは限りません。まれに30秒間隔で行が表示されることがありますが、これは迷惑です。
tee
か何かでしょう。