nl 添加行号

功能:nl 命令将指定的各个文件添加行号标注后写到标准输出。如果不指定文件或指定文件为”-” ,程序将从标准输入读取数据。
默认,只给非空白的行,添加行号。

语法:nl   [选项]  [文件]
-b STYLE –body-numbering=STYLE 使用指定 STYLE 编号文件的正文行号。自定义显示行号的样式。
-i NUM –page-increment=NUM 设置每一行遍历后的自动递增值。行号递增数,默认值1,可以设置为其他数值。
-l NUM –join-blank-lines=NUM 设置NUM 为多少的若干空行被视作一行
-n FORMAT –number-format=FORMAT 根据指定FORMAT 插入行号。指定附加行数的格式 FORMAT
-s STRING –number-separator=STRING 可能的话在行号后添加STRING。使用自定义的符号来区分行号与正文。
-w NUM –number-width=NUM 指定行号所占的宽度。默认6。
-d CC –section-delimiter=CC 使用指定的 CC 分割逻辑页数
-p –no-renumber 在逻辑页数切换时不将行号值复位
-v NUM –starting-line-number=NUM 每个逻辑页上的第一行的行号
-f STYLE –footer-numbering=STYLE 使用指定 STYLE 编号文件的页脚行号
-h STYLE –header-numbering=STYLE 使用指定 STYLE 编号文件的页眉行号
  • 默认的选项设置是 -v1 -i1 -l1 -sTAB -w6 -nrn -hn -bt -fn
  • CC 是用于分隔逻辑页数的两个分界符,其中缺失的第二个字符暗含了”:”,如果您要指定”\”,请输入”\\”。
  • 可用的STYLE 如下:
    a 对所有行编号
    t 对非空行编号
    n 不编行号
    pBRE 只对符合正则表达式BRE 的行编号
  • FORMAT 是下列之一:
    ln 左对齐,空格不用0 填充
    rn 右对齐,空格不用0 填充
    rz 右对齐,空格用0 填充

 

nl 实例

不使用参数,直接 nl 命令 
[root@localhost test]# nl log2012.log   用 nl 列出 log2012.log 的内容 
     1  2012-01 
     2  2012-02 
       
       
     3  ======[root@localhost test]# 
文件中的空白行,nl 不会加上行号 
 
 
用 nl 列出 log2012.log 的内容,空本行也加上行号 
[root@localhost test]# nl -b a log2012.log 
     1  2012-01 
     2  2012-02 
     3 
     4 
     5  ======[root@localhost test]# 
 
 
让行号前面自动补上0,统一输出格式 
[root@localhost test]# nl -b a -n rz log2014.log 
000001  2014-01 
000002  2014-02 
000003  2014-03 
000004  2014-04 
000005  2014-05 
000006  2014-06 
000007  2014-07 
000008  2014-08 
000009  2014-09 
000010  2014-10 
000011  2014-11 
000012  2014-12 
000013  ======= 
 
[root@localhost test]# nl -b a -n rz -w3 log2014.log 
001     2014-01 
002     2014-02 
003     2014-03 
004     2014-04 
005     2014-05 
006     2014-06 
007     2014-07 
008     2014-08 
009     2014-09 
010     2014-10 
011     2014-11 
012     2014-12 
013     ======= 
nl -b a -n rz 命令行号默认为六位,要调整位数可以加上参数 -w3 调整为3位。
 
 
使用特殊符号作为行号与实际内容之间的分隔符 
fans@mylaptop:~$ nl -s +__+ .bashrc 
1 +__+ #~/.bashrc:executed by bash(1) for non-login Shells. 
2 +__+ #see /usr/share/doc/bash/examples 
 本行无内容 
3 +__+ #for examples