Sté*_*las 19
在支持设置滚动区域的终端上:
tailf() ( # args: <file> [<number-of-header-lines>]
trap 'tput csr 0 "$((LINES-1))"' INT
tput csr "$((1+${2-1}))" "$((LINES-1))"
tput clear
{
head -n"${2-1}"
printf "%${COLUMNS}s\n" "" | tr ' ' =
tail -n "$((LINES-1-${2-1}))" -f
} < "$1"
)
Run Code Online (Sandbox Code Playgroud)
(假设 shell 类似zsh或根据终端的大小bash设置$COLUMNS和$LINES变量)。
Tho*_*hor 13
如果您熟悉 vim,这可能是您的最佳选择。您可以通过更改启用水平滚动绑定'scrollopt':
set scrollopt=hor
Run Code Online (Sandbox Code Playgroud)
因此,使用vim -u NONE,您可以通过以下方式获得所需的行为:
:set scrollopt=hor
:set nowrap
:1split
:windo set scrollbind
Run Code Online (Sandbox Code Playgroud)
您可能需要分别调整'sidescroll'和'sidescrolloff'更改跳过的列数以及距边缘跳过开始的距离。
试试这个(你需要安装multitail):
multitail -du -t "$(head -n 1 filename)" filename
Run Code Online (Sandbox Code Playgroud)
或者,对于超过一行的标题:
multitail -wh 2 -l "head -n 2 filename" filename
Run Code Online (Sandbox Code Playgroud)
如果要遵循命令输出而不是文件:
multitail -wh 2 -l "command | head -n 2" -l command
Run Code Online (Sandbox Code Playgroud)
或-t适当使用。请注意,您可能需要使用,unbuffer以便您的命令输出立即出现。
您可以使用-D禁用-wh表单的状态行显示(这会破坏-t表单的目的)。