繁体   English   中英

如何拖尾-F,但仅在最后5行滚动显示

[英]How to tail -F, but keep it only scrolling output in last 5 lines

我希望能够在tail -F一些输出,但是不希望它回滚整个缓冲区,而仅在有限的几行(例如5行)内滚动。

我怎样才能做到这一点?

我试过了

tail -F -n 5 /tmp/dump

但这似乎不起作用-滚动线占用了整个缓冲区

以下解决方案不是很漂亮-它使用ANSI转义序列-但我认为它无需使用watch就可以大致满足您的要求:

while true; do
    tail -5 /tmp/dump | cut -c1-80
    printf '\e[5A'
    sleep 1
done

序列\\e[5A表示上升五行。 5可以替换为您想要的任何数字。

也就是说,最好使用类似curses的库来处理此类事情。 使用原始ANSI转义序列是不可移植的。 tput在Linux和Cygwin中可用。 cuu能力向上移动。

while true; do
    tail -5 /tmp/dump | cut -c1-80
    tput cuu 5
    sleep 1
done

tail -5f /tmp/dump奇怪的是,这在发行版中是不同的。 由于某些原因,-- --retry无法使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM