国际访客建议访问 Primers 编程伙伴 国际版站点 > Bash 教程 > nl 以获得更好的体验。

# Bash 的 nl 命令

nl [OPTION]... [FILE]...

!subtitle:功能

查看文件并添加行号。

!subtitle:类型

可执行文件(/usr/bin/nl),属于 coreutils

!subtitle:参数

  • OPTION 选项:

    • -b, --body-numbering=STYLE - 使用 STYLE 作为正文编号 风格);默认为 n 不编号

    • -d, --section-delimiter=CC - 使用 CC 作为逻辑页的分隔符,三个分隔符表示标题,两个表示正文,一个表示页脚;默认为 '\:'

    • -f, --footer-numbering=STYLE - 使用 STYLE 作为页脚编号 风格);默认为 n 不编号

    • -h, --header-numbering=STYLE - 使用 STYLE 作为标题编号 风格);默认为 t 对非空行编号

    • -i, --line-increment=NUMBER - 每行编号递增 NUMBER

    • -l, --join-blank-lines=NUMBER - 将 NUMBER 行空行视作一行

    • -n, --number-format=FORMAT - 行号 格式)

    • -p, --no-renumber - 新章节不重置行号

    • -s, --number-separator=STRING - 在行号后面添加字符串 STRING

    • -v, --starting-line-number=NUMBER - 行号的初始值为 NUMBER

    • -w, --number-width=NUMBER - 行号的宽度为 NUMBER

    • --help - 显示帮助

    • --version - 显示版本

  • FILE - 文件列表;如果没有这个参数或指定为 -,则读取标准输入

# 风格

风格 说明
a 对所有行编号
t 对非空行编号
n 不编号
pBRE 对正则表达式 BRE 匹配的行编号

# 格式

格式 说明
ln 左对齐
rn 右对齐
rz 右对齐,左侧补零

# 示例

!subtitle:基本使用

$ cat 1.txt                             # 查看文件
Primers 编程伙伴
https://xplanc.org/primers/
$ nl 1.txt                              # 附带行号
     1	Primers 编程伙伴
     2	https://xplanc.org/primers/
$ nl -v 100 1.txt                       # 行号从 100 开始
   100	Primers 编程伙伴
   101	https://xplanc.org/primers/
$ nl -n ln 1.txt                        # 左对齐
1     	Primers 编程伙伴
2     	https://xplanc.org/primers/

!subtitle:标题和页脚

$ cat 1.txt                     # 查看文件
\:\:\:
Primers 编程伙伴
\:\:
Primers 致力于为各类编程学习者提供全面、系统的编程教程和实践资源。

无论你是编程新手,还是有一定基础的开发者,Primers 都提供了适合的学习路径和丰富的实战项目,帮助你从零开始,逐步掌握编程技能,成为一名优秀的开发者。
\:
https://xplanc.org/primers/
$ nl 1.txt                      # 默认只编号正文的非空行

       Primers 编程伙伴

     1	Primers 致力于为各类编程学习者提供全面、系统的编程教程和实践资源。

     2	无论你是编程新手,还是有一定基础的开发者,Primers 都提供了适合的学习路径和丰富的实战项目,帮助你从零开始,逐步掌握编程技能,成为一名优秀的开发者。

       https://xplanc.org/primers/
$ nl -h a -f a -b a 1.txt       # 标题、页脚、正文都编号所有行

     1	Primers 编程伙伴

     1	Primers 致力于为各类编程学习者提供全面、系统的编程教程和实践资源。
     2
     3	无论你是编程新手,还是有一定基础的开发者,Primers 都提供了适合的学习路径和丰富的实战项目,帮助你从零开始,逐步掌握编程技能,成为一名优秀的开发者。

     1	https://xplanc.org/primers/
$ nl -h a -f a -b a -p 1.txt    # 不重置行号

     1	Primers 编程伙伴

     2	Primers 致力于为各类编程学习者提供全面、系统的编程教程和实践资源。
     3
     4	无论你是编程新手,还是有一定基础的开发者,Primers 都提供了适合的学习路径和丰富的实战项目,帮助你从零开始,逐步掌握编程技能,成为一名优秀的开发者。

     5	https://xplanc.org/primers/
  • 三个 \: 表示标题

  • 两个 \: 表示正文

  • 一个 \: 表示页脚

# 推荐阅读

# 手册

NL(1)                            User Commands                           NL(1)

NAME
       nl - number lines of files

SYNOPSIS
       nl [OPTION]... [FILE]...

DESCRIPTION
       Write each FILE to standard output, with line numbers added.

       With no FILE, or when FILE is -, read standard input.

       Mandatory  arguments  to  long  options are mandatory for short options
       too.

       -b, --body-numbering=STYLE
              use STYLE for numbering body lines

       -d, --section-delimiter=CC
              use CC for logical page delimiters

       -f, --footer-numbering=STYLE
              use STYLE for numbering footer lines

       -h, --header-numbering=STYLE
              use STYLE for numbering header lines

       -i, --line-increment=NUMBER
              line number increment at each line

       -l, --join-blank-lines=NUMBER
              group of NUMBER empty lines counted as one

       -n, --number-format=FORMAT
              insert line numbers according to FORMAT

       -p, --no-renumber
              do not reset line numbers for each section

       -s, --number-separator=STRING
              add STRING after (possible) line number

       -v, --starting-line-number=NUMBER
              first line number for each section

       -w, --number-width=NUMBER
              use NUMBER columns for line numbers

       --help display this help and exit

       --version
              output version information and exit

       Default options are: -bt -d'\:' -fn -hn -i1 -l1 -n'rn' -s<TAB> -v1 -w6

       CC are two delimiter characters used to construct logical  page  delim‐
       iters;  a missing second character implies ':'.  As a GNU extension one
       can specify more than two characters, and  also  specifying  the  empty
       string (-d '') disables section matching.

       STYLE is one of:

       a      number all lines

       t      number only nonempty lines

       n      number no lines

       pBRE   number only lines that contain a match for the basic regular ex‐
              pression, BRE

       FORMAT is one of:

       ln     left justified, no leading zeros

       rn     right justified, no leading zeros

       rz     right justified, leading zeros

AUTHOR
       Written by Scott Bartram and David MacKenzie.

REPORTING BUGS
       GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
       Report any translation bugs to <https://translationproject.org/team/>

COPYRIGHT
       Copyright  ©  2023  Free Software Foundation, Inc.  License GPLv3+: GNU
       GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
       This is free software: you are free  to  change  and  redistribute  it.
       There is NO WARRANTY, to the extent permitted by law.

SEE ALSO
       Full documentation <https://www.gnu.org/software/coreutils/nl>
       or available locally via: info '(coreutils) nl invocation'

GNU coreutils 9.4                 April 2024                             NL(1)
本文 更新于: 2025-11-27 09:38:15 创建于: 2025-11-27 09:38:15