如何使用`cat`查看很长文件的顶部?

IDK*_*IDK 23 command-line cat

我想知道如何

cat my-verylong-file
Run Code Online (Sandbox Code Playgroud)

并从顶部而不是末端显示它。就像man命令一样。

vid*_*rlo 48

使用less,它将从顶部显示文件,允许您滚动浏览它,就像man

less my-verylong-file
Run Code Online (Sandbox Code Playgroud)
  • q退出。

如果您只是对查看文件的前 n 行感兴趣,则head可能是另一种选择:

head -n 25 filename
Run Code Online (Sandbox Code Playgroud)

将显示文件的前 25 行。

对于文件的最后 n 行,同样的事情tail

tail -n 25 filename
Run Code Online (Sandbox Code Playgroud)

  • 那么,或多或少是一样的东西? (5认同)
  • `less` 也可以用来滚动很长的命令输出。[这里](https://askubuntu.com/a/482826/566421) 给出了一个例子:`ls -laR --color=always ~/ | 少 -R`。 (2认同)
  • 命令名称“less”是命令名称“more”(它或多或少替换)的双关语,而后者又是根据它给出的“--More”提示命名的。在 MacOS 下,似乎 more 和 less 是相同的二进制文件,所以变形是完整的 :) (2认同)

Pet*_*des 12

man使用less(1)作为默认寻呼机。用它代替cat. 另请参阅@vidarlo 的回答

如何自定义less以使其更好:

我喜欢alias m=less,所以它只是一个单字母命令,因为我一直在输入它。将 a|m放在任何东西的末尾,将其输送到寻呼机中。

您可以-iMRj5X在别名中添加选项(例如alias m='less -iMRX),但我是用我的~/.lesskey文件来做的。(见lesskey(1))。

  • -i:搜索不区分大小写(除非您使用任何大写字母)
  • -M: 更长的状态行,显示行号和文件百分比
  • -R: 允许一些控制代码通过,因此您可以将彩色命令通过管道传输到less中。
  • -X:不要切换到终端模拟器的“备用”屏幕,因此当您q退出less. (非常适合在找到所需选项后的手册页,并希望在键入时查看它。)
  • -j5:搜索将目标行放在第 5 行而不是屏幕顶部。因此,您可以在搜索结果的两侧看到上下文。(有时我会通过在 中键入-j40或其他内容以交互方式更改此设置less,如果在搜索命中之前查看上下文最有用的话)。

我也绑定.next-file,并,prev-file,因为默认绑定是两个不同的字符,这是很多慢键入::n:p


这是我的.lesskey

$ cat .lesskey
. next-file
, prev-file
#env
LESS = iMRj5X
Run Code Online (Sandbox Code Playgroud)

运行lesskey以将其“编译”为~/.less.

这在 20 年前可能更重要,但less每次启动时都会读取该二进制文件而不是解析文本配置文件。