菜鸟科技网

Linux命令如何显示行号?

cat -n (最常用)

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

Linux命令如何显示行号?-图1
(图片来源网络,侵删)

语法:

cat -n 文件名

示例: 假设你有一个名为 my_log.txt 的文件,内容如下:

This is line 1.
This is line 2.
This is line 3.

运行命令:

cat -n my_log.txt

输出:

Linux命令如何显示行号?-图2
(图片来源网络,侵删)
     1  This is line 1.
     2  This is line 2.
     3  This is line 3.

特点:

  • 简单直接:一行一个数字,从 1 开始。
  • 显示所有内容:会一次性显示整个文件。
  • 数字对齐:行号默认会右对齐,并用空格填充,这样多行数字时也能对齐,看起来更整齐。

nl (专为行号设计)

nl (number of lines) 命令是专门用来添加行号的,它比 cat -n 更灵活,可以自定义行号的格式、起始值等。

语法:

nl [选项] 文件名

常用选项:

Linux命令如何显示行号?-图3
(图片来源网络,侵删)
  • -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 (交互式查看)

当你处理一个很大的文件时,用 catnl 会瞬间刷屏,内容一闪而过。less 命令可以让你分页查看文件,并且可以实时显示行号。

语法:

less -N 文件名

示例:

less -N my_log.txt

效果:

  • 文件会一页一页地显示在终端。
  • 每一行最前面都会显示行号。
  • 你可以使用方向键上下滚动,Page Up / Page Down 翻页。
  • 按下 q 键可以退出 less

特点:

  • 交互式:适合查看大文件。
  • 高效:不会一次性加载整个文件到内存。
  • 功能强大:除了显示行号,还支持搜索、跳转等。

vimnano (编辑器中查看)

如果你已经用编辑器打开了文件,也可以在编辑器内显示行号。

vim 中:

  1. 打开文件:vim my_log.txt
  2. 输入命令 set numberset nu,然后按回车。
  3. 行号就会显示在左侧。
  4. 如果想取消,输入 set nonumberset nonu

nano 中:

  1. 打开文件:nano my_log.txt
  2. 在屏幕底部的帮助行,通常会显示 ^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
  3. 如果你看到 ^M Prev Page,它旁边的 M 通常代表 Line Number (M for Mark, but in this context it's often a toggle for line numbers)。
  4. 按下 Ctrl + M 即可切换行号的显示。

总结与对比

命令 用途 优点 缺点
cat -n 快速查看文件全部内容并显示行号 简单、快速、通用 大文件会刷屏,不适合交互式查看
nl 专门为添加行号设计,功能灵活 可自定义行号格式、起始值、分隔符等 选项稍多,需要记忆
less -N 交互式分页查看大文件并显示行号 适合大文件,支持搜索、翻页等交互操作 需要按 q 退出
vim/nano 在编辑器内查看和编辑文件时显示行号 集成在编辑器中,方便直接修改 需要先打开编辑器

如何选择?

  • 只想快速看一眼小文件的行号:用 cat -n
  • 需要灵活定制行号格式:用 nl
  • 查看一个可能很大的日志文件:用 less -N
  • 正在编辑文件,想参考行号:直接在 vimnano 里开启。

希望这个详细的解释能帮助你!

分享:
扫描分享到社交APP
上一篇
下一篇