如何在终端中显示文件的第一页?

如何在终端中显示文件的第一页?

我想尽可能多地显示仍然适合终端窗口的文件,即像head具有动态行数的文件一样。

如果没有换行成多行的行并且提示需要一行,那么我可以使用head -n $(($(tput lines)-1)).

有没有不需要上述假设的解决方案?

编辑:该解决方案应该是非交互式的,因此less据我所知,eg 不起作用。

Edit2:该解决方案最好还应该正确处理非打印字符,例如用于文本着色的 ANSI 转义序列。

答案1

你可以包裹着fold,那么head它:

onepage () {
  fold -w "$(tput cols)" -s "$@" |
    head -n "$(($(tput lines)-1))"
}

或者也许使用pr.假设 GNU pr

pr -l "$((LINES - 1))" +1:1 -t
  • -l ...- 将页面高度设置为$LINES- 1。
  • +1:1从第一页开始打印...直到第一页。
  • -t- 不打印标题。

答案2

也许使用该程序less

在终端中,输入:

less nameOfTheTextFile

它将显示从文本文件的第一行开始的所有可用的适合行

相关内容