日期:2014-05-16  浏览次数:20895 次

一天一条linux命令——nl(转)

?

语法格式

?

nl [ -b Type ] [ -f Type ] [ -h Type ] [ -l Number ] [ -d Delimiter ] [ -i Number ] [ -n Format ] [ -v Number ] [ -w Number ] [ -p ] [ -s Separator ] [ File ]

?

使用说明

?

nl 命令读取 File 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号写入标准输出。在输出中,nl 命令根据您在命令行中指定的标志来计算左边的行。输入文本必须写在逻辑页中。每个逻辑页有头、主体和页脚节(可以有空节)。除非使用 -p 标志,nl 命令在每个逻辑页开始的地方重新设置行号。可以单独为头、主体和页脚节设置行计算标志(例如,头和页脚行可以被计算然而文本行不能)。

?

主要参数

?

-b Type 选择主体节的行来计算。对 Type 变量的认可的值是: a 计算所有行 t 不计算空行或包含任何非图形符号如包含 tab 的行。(缺省) n 不计算任何行 pPattern 只计算那些被 Pattern 变量指定的行。

?

-d Delimiter 使用 Delimiter 变量指定的两个字符作为逻辑页节开始的定界符。缺省字符是 \:(反斜杠、冒号)。您可指定两个 ASCII 字符,两个 1 字节扩展字符或一个扩展字符。如果您在 -d 标志后只输入了一个 1 字节字符,第二个字符维持缺省值(冒号)。如果您想使用反斜杠作为定界符,请输入两个反斜杠 ( \\ )。

?

-f Type 选择逻辑页页脚的行来计算。Type 变量的可能的值和 -b 标志的可能值相同。 Type 变量的缺省值是 n(没有行被计算)。

?

-h Type 选择逻辑页头的行来计算。Type 变量的可能的值和 -b 标志的可能的值相同。 Type 变量的缺省值是 n(没有行被计算)。

?

-i Number 逻辑页行号增加 Number 变量指定的数目。Number 变量的缺省值是 1。 Number 变量的范围是从 1 到 250。 (注:是指increment,即增量。计数时按照增量进行增加。如,-i10,则按照 10,20,30,...进行计数)

?

-l Number (小写字母 l)使用在 Number 参数中指定的值作为计算为一的空行数。例如,-l3 一系列中每三个空行计一次数。Number 变量的缺省值是 1。当设置了 -ha、-ba 或 -fa 选项该标志起作用。Number 变量的范围是从 1 到 250。 (注:对文本中的“连续的”的“空行”进行计算。例如,-l3是连续的三个“空行”计数一次。不连续“空行”的不做统计)

?

-p 在逻辑定界符处不重新开始计算。

?

-s Separator 用在 Separator 变量中指定的字符将文本和行号分隔开。Separator 变量的缺省值是制表符(tab)。 (注:将文本和行号分隔开的字符)

?

-v Number 设置初始逻辑页行号为在 Number 变量中指定的值。Number 变量的缺省值是 1。Number 变量的范围是从 0 到 32767。 (注:第一行的行号起点,比如-v20,是指第一行行号为20.)

?

-w Number 使用通过 Number 变量指定的值作为行号中字符的数量。Number 变量的缺省值是 6。Number 变量的范围是从 1 到 20。(注:前面的行号字符个数。比如对于第2行,行号为6个字符,有前导零,则 000002)

经测试:需-n配合才会有前导0,没有-n是默认是空格。

?

-n Format 使用 Format 变量的值作为行计算格式。认可的格式是: ln 左对齐,前导零不计 rn 右对齐,前导零不计(缺省) rz 右对齐,前导零保留。(注:ln左对齐,前导零不计:假设-w4,格式为 8---,9---,10--,<这里“-”表示空格>。 rn表示前导零不计,右对齐:假设-w4,格式为 ---8,---9,--10<这里“-”表示空格>。rz表示前导零保留,右对齐:假设-w4,格式为 0008,0009,0010。 )

?

?

?

?

?

?

?

应用实例

?

  • 只计算无空格行,请输入:

?

nl chap1

?

  • 要计算所有行:

?

nl -ba chap1 这计算主体节的所有行,包括空行。nl 命令的这种格式对大部分使用是适用的

?

  • 指定不同的行号格式,请输入:

?

nl -i10 -nrz -s:: -v20 -w4 chap1 这个计算以 20( -v20)开头并且以 10 (-i10)统计的 chap1 的行。它为每个数显示 4 个数字(-w4),包括引导零(-nrz)。行号被两个冒号(-s : :)从文本中分离。例如,如果 chap1 包含文本:

?

A not-so-important note to remember:

?

You can't kill time without injuring eternity.

?

那么计算列表是:

?


0020::A not-so-important 0020::note to remember

?

0030::You can't kill time 0040::without injuring eternity.

?

注意没有计算空行。为了这样做,像示例 2 显示的一样使用 -ba 标志。