ログファイルを一度にX行ずつ「追跡」する方法

ログファイルを一度にX行ずつ「追跡」する方法

毎秒数百行を生成するログファイルがあります。

このログファイルをリアルタイムできれいに表示するためにコマンドラインまたはシェルスクリプトを実行したいと思います。ただし、 を実行すると、tail -f logfile.txtテキストが端末ウィンドウの外にすばやくスクロールし、人間の目で読むことができません。私はまだコマンドラインをマスターしていないので、今すぐ考えられるのは次のとおりです。

ターミナルウィンドウで一度に12行だけ印刷し、自動的に更新したいです。たとえば、次のようになります。

// while ( Ctrl+C hasn't been hit )
// {
//   clear terminal window
//   print last 12 lines of logfile.txt
//   wait until logfile is 12 lines longer
// }

どんなアイデアがありますか?

編集:できることがわかりましたtail -f logfile.txt。ターミナルウィンドウの高さを12に設定します。これは私が望むものに非常に近づきますが、「素朴な」アプローチのように見えます。誰かがよりエレガントなソリューションを持っていることを願っています。

ベストアンサー1

M秒ごとに最後のN行を表示できますwatch。 N=20、M=3と仮定すると、

watch -n3 tail -n20 logfile.txt

明らかに、更新間隔が書き込み間隔を超えると、多くの出力が失われます。しかし、私が理解したのは、これがあなたが望むものです。

おすすめ記事