代码之家  ›  专栏  ›  技术社区  ›  Brad Parks

如何跟踪-F,但只在最后5行中滚动输出

  •  0
  • Brad Parks  · 技术社区  · 7 年前

    我希望能够 tail -F 有的输出,但不让它滚动整个缓冲区,只滚动里面有限的行数,比如说5行。

    我该怎么做?

    我试过了

    tail -F -n 5 /tmp/dump

    2 回复  |  直到 7 年前
        1
  •  3
  •   Jon    7 年前

    watch :

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

    \e[5A 意思是往上五行。这个 5 可以换成你想要的号码。

    也就是说,你最好用一个像图书馆这样的诅咒来做这类事情。使用原始ANSI转义序列是不可移植的。 tput 在Linux和Cygwin中可用。这个 cuu 能力提升。

    while true; do
        tail -5 /tmp/dump | cut -c1-80
        tput cuu 5
        sleep 1
    done
    
        2
  •  0
  •   itChi    7 年前

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

    推荐文章