[英]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.