在linux下cat命令可以查看文件内容,不过有时候我们需要在前面加上行号,看起来更方便,nl命令就有这个功能。
比如查看一个sh脚本:
$ cat print-printf.sh 
echo $0 $1
if [ $1x == 1x ]; then
    echo "printf"
    awk '{for(i=1;i<5;i++){printf($i"\t")}}' test.txt
else
    echo "print"
    awk '{for(i=1;i<5;i++){print($i"\t")}}' test.txt
fi
$ nl -n ln print-printf.sh 
1         #!/bin/bash
       
2         echo $0 $1
3         if [ $1x == 1x ]; then
4             echo "printf"
5             awk '{for(i=1;i<5;i++){printf($i"\t")}}' test.txt
6         else
7             echo "print"
8             awk '{for(i=1;i<5;i++){print($i"\t")}}' test.txt
9         fi 在shell终端输入nl --help查看其他的选项:
$ nl --help
用法:nl [选项]... [文件]...
Write each FILE to standard output, with line numbers added.
如果没有指定文件,或者文件为"-",则从标准输入读取。
必选参数对长短选项同时适用。
  -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 填充
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
请向<http://translationproject.org/team/zh_CN.html> 报告nl 的翻译错误
Full documentation at: <http://www.gnu.org/software/coreutils/nl>
or available locally via: info '(coreutils) nl invocation'                










