nl命令

nl命令用于将文件内容写入到标准输出并附带行号,类似cat -n

用法:nl [选项]... [文件]...

如果不指定文件或使用-,则会从标准输入读取内容

选项说明:

  -b, --body-numbering=样式	使用指定样式编号文件的正文行目
  -d, --section-delimiter=CC	使用指定的CC 分割逻辑页数
  -f, --footer-numbering=样式	使用指定样式编号文件的页脚行目
  -h, --header-numbering=样式	使用指定样式编号文件的页眉行目
  -i, --page-increment=数值	设置每一行遍历后的自动递增值
  -l, --join-blank-lines=数值	设置数值为多少的若干空行被视作一行
  -n, --number-format=格式	根据指定格式插入行号
  -p, --no-renumber		在逻辑页数切换时不将行号值复位
  -s, --number-separator=字符串	可能的话在行号后添加字符串
  -v, --starting-line-number=数字	每个逻辑页上的第一行的行号
  -w, --number-width=数字	为行号使用指定的栏数
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出


样式可选项:
  a	对所有行编号
  t	对非空行编号
  n	不编行号
  pBRE	只对符合正则表达式BRE 的行编号


格式[FORMAT]可选项:

  ln	左对齐,空格不用0 填充
  rn 	右对齐,空格不用0 填充
  rz 	右对齐,空格用0 填充

nl默认不带参数的选项设置是-v1 -i1 -l1 -sTAB -w6 -nrn -hn -bt -fn。CC 是用于分隔,逻辑页数的两个分界符,其中缺失的第二个字符暗含了":",如果要指定"",请输入"\"。

示例:

有如下内容文件:

[root@zyc-vm Documents]# cat test.txt 
This is an sed test file
Linux test

i am new line


Welcome sed's world
very good defz.cn
repeat line
repeat line
repeat line
repeat line
repeat line
repeat line
repeat line
repeat line
xxxx eat line
ytyyy repeat line

nl命令不同选项显示效果示例:

[root@zyc-vm Documents]# nl test.txt 
     1	This is an sed test file
     2	Linux test
       
     3	i am new line
       
       
     4	Welcome sed's world
     5	very good defz.cn
     6	repeat line
     7	repeat line
     8	repeat line
     9	repeat line
    10	repeat line
    11	repeat line
    12	repeat line
    13	repeat line
    14	xxxx eat line
    15	ytyyy repeat line

# 所有行编号(包括空行)
[root@zyc-vm Documents]# nl -ba test.txt 
     1	This is an sed test file
     2	Linux test
     3	
     4	i am new line
     5	
     6	
     7	Welcome sed's world
     8	very good defz.cn
     9	repeat line
    10	repeat line
    11	repeat line
    12	repeat line
    13	repeat line
    14	repeat line
    15	repeat line
    16	repeat line
    17	xxxx eat line
    18	ytyyy repeat line

# 左对齐
[root@zyc-vm Documents]# nl -ba -nln test.txt 
1     	This is an sed test file
2     	Linux test
3     	
4     	i am new line
5     	
6     	
7     	Welcome sed's world
8     	very good defz.cn
9     	repeat line
10    	repeat line
11    	repeat line
12    	repeat line
13    	repeat line
14    	repeat line
15    	repeat line
16    	repeat line
17    	xxxx eat line
18    	ytyyy repeat line