我用

tail -f file | grep pattern

一直持续进行grep。

但是,有没有办法让grep在同一位置(例如在屏幕顶部)输出其模式?这样屏幕就不会一直滚动?

我的情况是这样的:tail -f log_file | grep Status -A 2将显示当前状态以及将其更改为该状态的内容。问题是屏幕滚动并且变得烦人。我宁愿将输出卡在屏幕的前3行中。

谢谢!

最佳答案

您可以使用watch命令;它将始终执行相同的命令,但屏幕上的位置将保持不变。但是,该进程可能会占用更多的CPU或内存:

watch "tail file | grep pattern"

默认情况下,watch每2秒执行一次该命令。您可以使用以下方法最多调整0.1秒:
watch -n 0.1

注意
正如@etanReisner所指出的:这与tail -f并不完全相同:如果将某些内容添加到日志文件中,那么tail -f会立即更改,watch命令仅会在执行时注意到它,即每2(或0.1秒)一次。

09-10 06:47
查看更多