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

时间:2018-09-27 11:52:30

标签: bash tail

我希望能够NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[contains(text(), 'Download file in csv format')]"} 进行一些输出,但不希望它回滚整个缓冲区,而只能在有限的几行(例如5行)内滚动。

我该怎么做?

我尝试过

tail -F

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

2 个答案:

答案 0 :(得分:3)

以下解决方案不是很好-它使用ANSI转义序列-但我认为它可以大致完成您想要的操作,而无需使用watch

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

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

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

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

答案 1 :(得分:0)

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