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


18

我想知道如何

cat my-verylong-file

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


5
为了完整起见,也有more命令...但是由于more能力不如less,“少即是多”是很真实的。最后还有pg“页面”。您还可以将这些命令与管道一起使用-例如。ls -l | less将很长的文件列表分成多个页面。您甚至可以使用cat my-verylong-file | less
巴德·科珀罗德

还值得指出的是,“默认情况下,人使用/ usr / bin / less -is。” (来自man man)。
Digital Trauma

Answers:


43

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

less my-verylong-file
  • q退出。

如果您只想查看文件的前n行,head可以选择以下一种方法:

head -n 25 filename

将显示文件的前25行。

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

tail -n 25 filename

2
less也可以用于滚动非常长的命令输出。这里提供一个示例:ls -laR --color=always ~/ | less -R
pa4080

2
命令名称“ less”是命令名称“ more”(它或多或少地替换了)上的双关语,而命令名称又由它给出的“ --More”提示命名。在MacOS似乎更多的是相同的二进制为没有那么变态完毕:)
托尔比约恩Ravn的安徒生

5
那么,差不多是同一件事吗?
Ryan The Leach

1
@ pa4080:您可以设置less这样-R默认情况下启用。看我的答案。
彼得·科德斯

@RyanTheLeach more less:一样的事情:)
chepner

11

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

如何进行定制less以使其更好:

我喜欢alias m=less,所以它只是一个字母命令,因为我一直都在输入。将a |m放在任何内容的末尾,将其通过管道传至寻呼机。

您可以-iMRj5X在别名中添加类似的选项(例如alias m='less -iMRX),但是我可以通过~/.lesskey文件来实现。(请参见lesskey(1))。

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

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


这是我的.lesskey

$ cat .lesskey
. next-file
, prev-file
#env
LESS = iMRj5X

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

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


@丹:在顶部添加一行,以便此答案可以独立作为该问题的答案。我以为在给出其他答案的情况下,将该部分保留为隐含就足够了,但是如果我不反对让它显露出来(如果它使您感到困扰),则不反对。
彼得·科德斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.