我用
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秒)一次。