如何根据行数使用“cat”或“less”?

Tob*_*ler 12 less cat

在查看文件内容时,我想自动cat缩短文件但less那些超过屏幕尺寸的文件。我可以使用wc -l,但是有没有更好的方法可以同时考虑窗口大小/当前可用的行数?

Dom*_*Dom 20

也许'less -F file_to_read'是选项:如果窗口足以显示所有文件,则退出较少,如果不是这种情况,则在寻呼机上等待

  • 该命令按要求工作,但有一个小故障:它在显示文件后清除屏幕。添加 `-X` 选项将停止清除,因此短文件将像 `cat` 一样显示。不幸的是,使用`-X` 显示长的、滚动的文件后,屏幕也不会被清除。 (12认同)

man*_*ork 9

为您提供涉及wc基于检查的公式:

(($(wc -l<input_file)<=$(tput lines))) && echo 'will fit' || echo 'not enough'
Run Code Online (Sandbox Code Playgroud)

还有一个$LINESshell 变量也可以使用:

(($(wc -l<input_file)<=LINES)) && echo 'will fit' || echo 'not enough'
Run Code Online (Sandbox Code Playgroud)

$LINES仅在命令提示符下更新。要理解我的意思,请运行它并在以下期间调整终端窗口的大小sleep

( sleep 3; echo $LINES; tput lines )
Run Code Online (Sandbox Code Playgroud)