grep 中のファイルのリアルタイム tail(tail -f)

grep 中のファイルのリアルタイム tail(tail -f)

tail -f -n20 <file>ファイルの最後の20行をリアルタイムで表示できます。

何かをgrepしたい場合は tail -f <file> | grep <pattern>まだアクティブですが、tailの出力を介してのみgrepさ​​れます。つまり、最初から20行の出力がないという意味です。 (20行のうち5行だけが私のパターンと一致すると、出力から5行だけを取得します。)

何かをしたら

grep <pattern> <file> | tail -n20 

20ラインの出力がありますが、ライブでもありません。

cat <file> | grep <pattern> | tail -n20

ファイルの最後のn行のリアルタイム更新を表示する方法後ろにブドウ?

答え1

teeプロセス置換と組み合わせて使用​​できます>()

tail -f -n 20 file.log | tee >(grep 'pattern')

これにより、最後の20行が表示され、file.log結果が表示されますgrep

答え2

では最初からしかtail -fn20機能しません。20

tail最初の20行を表示してから続けます。みんな新しい行は表示されるとすぐに追加されます(1行、20行、1000行)。

または言い換えれtail -fn20ば。tail -n20tail -fn+1

ここでは、次のことができます。

{ grep pattern | tail -n 20; tail -fn+1 | grep pattern; } < file

つまり、最初の手順を手動で実行してから、残りのtail -f手順をすべて表示します。

関連情報