cat -n (最常用)
这是最直接、最常用的方法,它会将整个文件的内容连同行号一起输出到标准输出(通常是你的终端)。

(图片来源网络,侵删)
语法:
cat -n 文件名
示例:
假设你有一个名为 my_log.txt 的文件,内容如下:
This is line 1.
This is line 2.
This is line 3.
运行命令:
cat -n my_log.txt
输出:

(图片来源网络,侵删)
1 This is line 1.
2 This is line 2.
3 This is line 3.
特点:
- 简单直接:一行一个数字,从 1 开始。
- 显示所有内容:会一次性显示整个文件。
- 数字对齐:行号默认会右对齐,并用空格填充,这样多行数字时也能对齐,看起来更整齐。
nl (专为行号设计)
nl (number of lines) 命令是专门用来添加行号的,它比 cat -n 更灵活,可以自定义行号的格式、起始值等。
语法:
nl [选项] 文件名
常用选项:

(图片来源网络,侵删)
-b a或-b t:对所有行编号 (all),这是默认行为。-b t:只对非空行编号 (text),空行会被跳过。-n ln或-n rz:设置行号的格式。ln:左对齐,不填充 (e.g.,1,2,10)。rz:右对齐,用零填充 (e.g.,001,002,010)。
-s 字符串:设置行号和内容之间的分隔符,默认是制表符\t。-v 数字:设置起始行号,默认是 1。
示例 1: 默认行为 (与 cat -n 类似)
nl my_log.txt
输出:
1 This is line 1.
2 This is line 2.
3 This is line 3.
示例 2: 只对非空行编号
假设文件 my_log.txt 中有一个空行:
This is line 1.
This is line 3.
nl -b t my_log.txt
输出:
1 This is line 1.
2 This is line 3.
空行被跳过了。
示例 3: 自定义格式和分隔符
nl -b a -n rz -s ": " my_log.txt
输出:
001: This is line 1.
002: This is line 2.
003: This is line 3.
-b a: 对所有行编号。-n rz: 行号用零填充,右对齐。-s ": ": 行号和内容之间用冒号和空格隔开。
less (交互式查看)
当你处理一个很大的文件时,用 cat 或 nl 会瞬间刷屏,内容一闪而过。less 命令可以让你分页查看文件,并且可以实时显示行号。
语法:
less -N 文件名
示例:
less -N my_log.txt
效果:
- 文件会一页一页地显示在终端。
- 每一行最前面都会显示行号。
- 你可以使用方向键上下滚动,
Page Up/Page Down翻页。 - 按下
q键可以退出less。
特点:
- 交互式:适合查看大文件。
- 高效:不会一次性加载整个文件到内存。
- 功能强大:除了显示行号,还支持搜索、跳转等。
vim 或 nano (编辑器中查看)
如果你已经用编辑器打开了文件,也可以在编辑器内显示行号。
在 vim 中:
- 打开文件:
vim my_log.txt - 输入命令
set number或set nu,然后按回车。 - 行号就会显示在左侧。
- 如果想取消,输入
set nonumber或set nonu。
在 nano 中:
- 打开文件:
nano my_log.txt - 在屏幕底部的帮助行,通常会显示
^G Get Help^X Exit^O Write Out^M Prev Page^J Justify^R Read File^Y Prev Page^V Next Page^C Cancel^T To Spell。 - 如果你看到
^M Prev Page,它旁边的M通常代表Line Number(M for Mark, but in this context it's often a toggle for line numbers)。 - 按下
Ctrl + M即可切换行号的显示。
总结与对比
| 命令 | 用途 | 优点 | 缺点 |
|---|---|---|---|
cat -n |
快速查看文件全部内容并显示行号 | 简单、快速、通用 | 大文件会刷屏,不适合交互式查看 |
nl |
专门为添加行号设计,功能灵活 | 可自定义行号格式、起始值、分隔符等 | 选项稍多,需要记忆 |
less -N |
交互式分页查看大文件并显示行号 | 适合大文件,支持搜索、翻页等交互操作 | 需要按 q 退出 |
vim/nano |
在编辑器内查看和编辑文件时显示行号 | 集成在编辑器中,方便直接修改 | 需要先打开编辑器 |
如何选择?
- 只想快速看一眼小文件的行号:用
cat -n。 - 需要灵活定制行号格式:用
nl。 - 查看一个可能很大的日志文件:用
less -N。 - 正在编辑文件,想参考行号:直接在
vim或nano里开启。
希望这个详细的解释能帮助你!
