侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux nl命令教程:如何优雅地添加行号(附实例详解和注意事项)

Linux nl命令介绍

Linux nl 命令是一个非常实用的文本处理工具,它的全称是 "number lines"。这个命令用于在输出中对每一行添加行号,提高了文件内容的可读性,尤其在查看源代码或配置文件时特别有用。
nl 命令用于将传入的文本文件内容输出时,附加上行号。默认情况下,nl 会为非空行添加行号,但是通过选项,你可以更改这一行为,比如包括空行在内编号,或者自定义行号的格式和间隔。

Linux nl命令适用的Linux版本

nl 命令在大多数Linux发行版中都是自带的,包括但不限于Ubuntu, Fedora, and Debian。对于像CentOS这样的发行版,nl 命令同样默认安装在系统中。

如果在使用 nl 命令时遇到 bash: nl: command not found 的错误提示,你可能需要手动安装它。对于CentOS系统,安装方法略有不同:

  • CentOS 7:
    [linux@bashcommandnotfound.cn ~]$ sudo yum install nl
    ```
    
  • CentOS 8:
    [linux@bashcommandnotfound.cn ~]$ sudo dnf install nl
    ```
    

Linux nl命令的基本语法

语法格式如下:

nl [OPTIONS]... [FILE]...

Linux nl命令的常用选项或参数说明

选项描述
-b指定行号指派的方式
-n选择行号的格式
-v设置起始行号
-i设置行号增加的间隔
-w设置行号字段的宽度
-s设置行号后跟随的字符
-l指定每多少行计数一次

Linux nl命令的实例

实例1:为文件添加行号(基础用法)

nl myfile.txt

输出将为 myfile.txt 文件中的非空行添加行号。

实例2:包括空行在行号中

nl -ba myfile.txt

该命令会对所有行包括空行进行编号。

实例3:使用自定义的逻辑编号

你可以指定 nl 对特定类型的行进行编号。例如,只对包含某个正则表达式的行进行编号:

nl -bp'^\s*#' myfile.txt

上面的命令只为以井号(#)开头的行添加行号。

实例4:改变行号的起始值

nl -v 100 myfile.txt

此命令将从100开始编号,而不是默认的1。

实例5:更改行号增量

nl -i 10 myfile.txt

上面的命令将行号的增量设置为10,即行号将是10, 20, 30, 等。

实例6:设置行号的宽度

nl -w 3 myfile.txt

这将设置行号的宽度为3,如果行号是单个数字,会添加前导空格或零(取决于其他选项)。

实例7:使用自定义分隔符

nl -s " --> " myfile.txt

此命令设置行号和文本之间的分隔符为 " --> "

实例8:合并两个文件时为它们编号

nl file1.txt file2.txt

第一个文件的行号将接着第二个文件继续编号。

实例9:只为连续的空行添加一个行号

nl -l 2 myfile.txt

这个命令在一系列空行中只为第一个空行添加行号,之后的空行不编号,直到遇到非空行为止。

实例10:格式化行号输出

nl -nrz -w5 -s": " myfile.txt

这个命令使用右对齐,零填充,宽度为5的行号格式,并以冒号和空格作为分隔符。

实例11:在管道中使用 nl添加行号

cat myfile.txt | nl

这个命令将 cat 命令的输出传递给 nl,为输出的每一行添加行号。

实例12:结合 grep 使用 nl 来突出显示匹配行

nl myfile.txt | grep 'pattern'

使用 grep 过滤 nl 输出的结果,可以快速定位包含特定模式的行和它们的行号。

Linux nl命令的注意事项

  • 当处理大型文件时,请注意行号的范围可能会超出预期的数字类型大小。
  • 使用非默认的行号选项(如 -b a)时,确保这是你想要的行为,因为这可能会改变文件的视觉结构。
  • 如果你遇到 bash: nl: command not found,请根据你的Linux发行版使用相应的包管理器安装 nl
0

评论区