2016-08-16 5 views
0

私は、ログファイルを少し大きくして(150MB)、いくつかの部分文字列を変更してから、あまり使わないようにユーザーに表示する必要があります。だからここ は、私が何をすべきかです:ログファイルの処理と表示が少ない

cat file.log | script.sh | less 

これは動作しますが、ファイルが更新される場合は、新しい行がtはそう代わりに、私が今現れドン:

tail -f -n +1 file.log | script.sh | less 

これは私にログファイル全体を与えます+新しい行も。 問題は、tailソリューションがcatソリューションに比べて非常に遅いことです。 この現象は、単に配管の途中でスクリプトを起動することなく、猫と尾を比較することで再現できます。

cat file.log | less 

tail -f -n +1 file.log | less 

対インスタントでスムーズに移動するには以下のために、いくつかの長い秒かかります。

catは私に更新を与えず、尾は遅すぎます。これらの制約に適合するソリューションはありますか? thx :)

答えて

0

通常、パイプ出力はバッファされます。より高速な出力のために、あなたは

unbuffer tail -f -n+1 | awk '{replace substring here}' 

unbufferコマンドは、Debianのベースのシステムでexpect-devパッケージの一部として来て検討することができます。

関連する問題