「nl(1)」-

为文件添加行号

命令语法格式

nl [OPTION]… [FILE]…

命令描述

nl将输入的文件数据分解为(逻辑)页面;默认情况下,每个逻辑页面的行号从1开始。nl会将所有输入文件视为单个文件,所以行号也是连续的;它不会重置文件之间的行号或逻辑页面。

一个逻辑页面由三部分组成:标题,正文,页脚。任何部分都可以是空的。每个部分都可以使用不同于其他部分的风格编号。

在输入文件中,逻辑页中部分的开始由下面的字符序列进行标识:

  • ‘\:\:\:’:页眉部分的开始;
  • ‘\:\:’:正文部分的开始;
  • ‘\:’:正文部分的开始;

这些字符串中的’\’和’:’两个字符可以通过选项进行更改(参见下文-d选项),但是每个字符串的模式和长度不能更改。

部分的分隔符会在输出时使用空行替换。输入文件中第一个分隔符字符串之前的任何文本都被认为是正文的一部分,因此nl会将不包含分隔符的文件视为单个正文部分。

默认将处理后的文件结果写入到标准输出中,输出行的前面会附带行号。如果未指定文件,或者文件为-,则从标准输入中读取内容。

命令支持的选项以含义

长选项的必填参数,在短选项中也必须提供。

-b, –body-numbering=STYLE
设置每个逻辑页中正文部分的行号风格。如果一个行没有设置行号,则当前的行号不会增加,但是行号分隔字符(参考-s选项)依会添加到行前。

STYLE的值如下:

‘a’:给所有的行添加行号。

‘t’:只为非空行添加行号。该风格对于正文是默认的。

‘n’:不给行添加行号。该风格对于页眉和页脚是默认的。

‘pBRE’:只给那些匹配基本正则表达式BRE的行。请参阅GNU实现的Grep手册中的正则表达式

-d, –section-delimiter=CC
将部分的分隔符字符设置为CC;默认值是’\:‘。如果只给出一个C,则第二个保持为’:‘。(请记住,需要使用引号或额外的反斜杠来转义’\’或其他元字符,以避免SHELL扩展这些字符。)

-f, –footer-numbering=STYLE
类似于–body-numbering选项。

-h, –header-numbering=STYLE
类似于–body-numbering选项。

-i, –line-increment=NUMBER
设置行号的步长,emmmm。。。。,增长值,默认为1,即下一个行号值是上一个行号值加1。如果NUMBER为2,那么下一个行号值是上一个行号值加2。

-l, –join-blank-lines=NUMBER
将多个连续的空白行视为一个空白行,并且只给这些连续空行的最后一个添加一个行号。当小于NUMBER个连续空白行时,不对他们追加行号。这里的空白行指的是没有字符的行,甚至没有空格和制表符。

-n, –number-format=FORMAT
设置行号的格式,FORMAT的值如下:

‘ln’:左对齐,没有前导0;

‘rn’:右对齐,没有前导0;

‘rz’:右对齐,有前导0;

-p, –no-renumber
在逻辑页开始的地方不要重置行号。

-s, –number-separator=STRING
使用STRING来分隔行号与行内容。该选项会在行内容和行号之间添加一个分隔符号STRING。

-v, –starting-line-number=NUMBER
将每个逻辑页的初始行号设置为NUMBER。

-w, –number-width=NUMBER
行号数字的位数。默认为6。该选项用于控制行号显示的宽度(或者说位数)。

–help
显示帮助并退出。

–version
显示版本信息。

退出状态

退出状态为零表示成功,非零值表示失败。

相关手册

完整在线手册:http://www.gnu.org/software/coreutils/nl

查看info手册:info ‘(coreutils) nl invocation’

参考文献

  • man 1 nl, version GNU coreutils 8.26

更新日志

  • 06/01/2018 创建文章