6291

31 分钟

#Bash 的 nl 命令

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

功能

查看文件并添加行号。

类型

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

参数

  • 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右对齐,左侧补零

#示例

基本使用

$ 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/

标题和页脚

$ 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/19

更新于 2025/11/19