nl

显示文件时增加行号


语法格式

nl [-p] [-b style] [-d cc] [-f style] [-h style] [-i num] [-l num]
[-n fmt] [s str] [-v num] [-w num] [files]
nl [--help] [--version]

命令简介

nl命令读取指定的文件或标准输入,把读取的数据写到标准输出,同时在每个数据行前面插入一个行号。其中,files是一个或一组文本文件。如果未指定输入文件,或指定的文件名为“-”,则直接读取标准输入。

nl能够处理事先已经划分为逻辑页的输入文件。每当遇到一个逻辑页时,nl都会从1开始重新编号。如果没有事先划分逻辑页,不管指定了多少输入文件,nl通常都会把所有文件作为一个文件处理,不会在文件之间重新编排行号或划分逻辑页。

如果想在文件中划分逻辑页,每个逻辑页可由3部分组成:页眉、实体和页脚。任何一部分都可以空缺。如果文件中的某个数据行仅仅包含下列分隔字符串之一,则标志着一个逻辑页组成部分的开始:

\:\:\:  逻辑页页眉的开始

\:\:  逻辑页实体的开始

\:  逻辑页页脚的开始

用户可以采用任何双字符作为分隔字符串,但上述风格、长度和其他要求不能变。如果输入文件采用不同的分隔字符串划分逻辑页,则运行nl命令时可以使用“-d”选项指定匹配的分隔字符串。

对于输入文件中的分隔字符串,nl将会代之以空行输出。在输入文件中,位于第一个逻辑页分隔字符串之前的任何数据,都会作为第一个逻辑页实体的一部分一起考虑。因此,nl会把没有划分逻辑页的整个输入文件作为一个逻辑页处理。

命令选项

-b style, --body-numbering=style  使用指定的风格插入行号。其中style可以是a(包括空行在内,所有数据行均编号)、t(仅对非空的数据行编号)、n(不编行号)或pBRE(仅对包含匹配指定基本模式BRE的数据行编号)。

-d cc, --section-delimiter=cc  使用指定的分隔符分割逻辑页,分隔符cc由两个字符组成,默认的分隔符是“\:”。如果省略了第二个分隔字符,蕴含着使用句点“.”作为分隔字符。注意,“\”是一个元字符,指定时须加引号或再加一个“\”。

-f style, --footer-numbering=style  使用指定的风格编排页脚的行号。参见“-b”选项。

-h style, --header-numbering=style  使用指定的风格编排页眉的行号。参见“-b”选项。

-i num, --line-increment=num  指定行号的增量,默认的行号增量为1。

-l num, --join-blank-lines=num  指定把多少空行作为一行考虑,默认值为1。例如,选项 “-l 2”表示仅对第二个相邻的空行编号(忽略第一个空行)。

-n fmt, --number-format=fmt  指定行号插入格式,行号插入格式fmt可以是ln(左对齐,省略前置0)、rn(右对齐,省略前置0)或rz(右对齐,保持前置0)。默认的行号插入格式是rn。

-p, --no-renumber  禁止在每个逻辑页内重新编号。

-s str, --number-separator=str  在行号之后追加指定的字符串(如果可能),作为行号与实际数据的分隔符。默认的分隔符是制表符。

-v num, --starting-line-number=num  指定每个逻辑页的起始行号。默认的起始行号是1。

-w num, --number-width=num  指定显示行号的列数,默认的列宽为6个字符位置。

应用实例

1. 如果不加任何选项直接运行nl命令,表示从1开始编号,行号增量为1,行号列宽为6,行号右对齐,以及空行不编号等。

$ nl /etc/passwd
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin

2. 显示指定的文件,从10开始编号,行号增量也是10,行号列宽为6,右对齐,空行不编号。

$ nl -v 10 -i 10 /etc/passwd
    10  root:x:0:0:root:/root:/bin/bash
    20  bin:x:1:1:bin:/bin:/sbin/nologin
    30  daemon:x:2:2:daemon:/sbin:/sbin/nologin

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z