如果输入大于屏幕大小,如何减少分页?

时间:2017-07-20 17:18:52

标签: linux bash terminal less-unix

如果我想清除屏幕并在程序输出超过屏幕上的行数时运行较少,我可以执行以下操作:

mypgm | tee mypgm.out
LEN=$(wc -l mypgm.out | cut -f1 -d' ')
[[ $LEN >= $LINES ]]; then
   clear
   less -R mypgm.out
fi

只要输出中的所有行都没有环绕,它在视觉上占据屏幕上的多条线就可以正常工作。 是否有一种简单的方法可以确定输出在视觉上占用多少行,或者我是否必须循环输出文件,计算"行数"需要使用$ COLUMNS

显示长行

2 个答案:

答案 0 :(得分:3)

好像你正在寻找类似的东西:

mycmd | less -F

来自man less

  

-F--quit-if-one-screen

     

如果整个文件可以显示在第一个屏幕上,则会导致自动退出。

您可以将其设为默认行为:

export LESS='-F'

.bashrc

-F选项很好地与-X结合使用,会在列出之前跳过屏幕清除(也可以将其作为LESS='-FX'的默认设置)。

答案 1 :(得分:0)

我找到了折叠,解决了这个问题:

fold -w "$COLUMNS" mypgm.out | wc -l

(因为wc正在对管道运行,所以不需要'cut')