linux nl命令

nl命令读取 file 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号写入标准输出。在输出中,nl命令根据您在命令行中指定的标志来计算左边的行。输入文本必须写在逻辑页中。每个逻辑页有头、主体和页脚节(可以有空节)。除非使用-p选项,nl 命令在每个逻辑页开始的地方重新设置行号。可以单独为头、主体和页脚节设置行计算标志(例如,头和页脚行可以被计算然而文本行不能)。其默认的结果与cat -n有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐0等等的功能。

语法

nl (选项) (参数)

选项

-b :指定行号指定的方式,主要有两种:
    -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
    -b t :如果有空行,空的那一行不要列出行号(默认值);

-n :列出行号表示的方法,主要有三种:
    -n ln :行号在萤幕的最左方显示;
    -n rn :行号在自己栏位的最右方显示,且不加 0 ;
    -n rz :行号在自己栏位的最右方显示,且加 0 ;

-w :行号栏位的占用的位数。
-p :在逻辑定界符处不重新开始计算。

实例

用 nl 列出 log2015.log 的内容

[root@localhost test]# nl log2015.log
1 2015-01
2 2015-02


3 ======[root@localhost test]#

说明:文件中的空白行,nl 不会加上行号

用 nl 列出 log2015.log 的内容,空本行也加上行号

[root@localhost test]# nl -b a log2015.log
1 2015-01
2 2015-02
3
4
5 ======[root@localhost test]#

让行号前面自动补上0,统一输出格式:

[root@localhost test]# nl -b a -n rz log2015.log
000001 2015-01
000002 2015-02
000003 2015-03
000004 2015-04
000005 2015-05
000006 2015-06
000007 2015-07
000008 2015-08
000009 2015-09
000010 2015-10
000011 2015-11
000012 2015-12
000013 =======

[root@localhost test]# nl -b a -n rz -w 3 log2015.log
001 2015-01
002 2015-02
003 2015-03
004 2015-04
005 2015-05
006 2015-06
007 2015-07
008 2015-08
009 2015-09
010 2015-10
011 2015-11
012 2015-12
013 =======

说明:nl -b a -n rz命令行号默认为六位,要调整位数可以加上参数-w 3调整为3位。





1、命令简介

nl (Number of Lines) 将指定的文件添加行号标注后写到标准输出。如果不指定文件或指定文件为"-" ,程序将从标准输入读取数据。

2、用法

nl [选项]... [文件]...

3、选项

复制代码
  -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        显示版本信息并退出 

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

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

FORMAT 是下列之一: 

  ln     左对齐,空格不用0 填充 
  rn     右对齐,空格不用0 填充 
  rz     右对齐,空格用0 填充
复制代码

4、示例

示例1:显示行号
[root@oracledb study]# nl test1.log 
     1    2011
     2    2012
     3    2013
示例2:显示行号,指定对齐方式
复制代码
[root@oracledb study]# nl -nln test1.log 
1         2011
2         2012
3         2013
[root@oracledb study]# nl -nrn test1.log 
     1    2011
     2    2012
     3    2013
[root@oracledb study]# nl -nrz test1.log 
000001    2011
000002    2012
000003    2013
复制代码
示例3:指定宽度为4位 默认为6位
[root@oracledb study]# nl -nrz -w 4 test1.log 
0001    2011
0002    2012
0003    2013
示例4:将标准输入的内容编号
复制代码
[root@oracledb study]# nl
line1
     1    line1
line2 
     2    line2
line3
     3    line3
[root@oracledb study]#
复制代码
按ctrl+D结束输入
or EOF(End Of File)
复制代码
[root@oracledb study]# nl <<EOF
> line1
> line2
> line3
> EOF
     1    line1
     2    line2
     3    line3
复制代码

猜你喜欢

转载自blog.csdn.net/youmatterhsp/article/details/80294186