news 2026/4/16 21:50:19

Linux 命令:nl

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux 命令:nl

概述

Linux 中的nl命令是带行号打印文件内容的工具,比基础的cat -n功能更灵活,支持对行号格式、编号规则(如是否跳过空行)进行精细化配置,是日常查看文件、排版输出的常用命令。

资料合集:https://pan.quark.cn/s/6fe3007c3e95https://pan.quark.cn/s/561de99256a5https://pan.quark.cn/s/985f55b13d94https://pan.quark.cn/s/d0fb20abd19a

一、基本语法

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

无文件参数时,默认读取标准输入(可配合管道|使用)。

二、核心功能与默认行为

  1. 默认只为非空行添加行号,空行不编号(区别于cat -n,后者对所有行包括空行编号);
  2. 行号默认居右,左侧补空格,与文件内容之间有制表符分隔;
  3. 支持多文件拼接打印,行号连续递增。
简单示例
# 打印 test.txt 内容并为非空行加行号nltest.txt

test.txt内容为:

hello linux nl command test line

输出结果:

1 hello linux 2 nl command 3 test line

三、常用选项(重点)

nl的优势在于通过选项自定义行号规则,以下是高频实用选项,可组合使用:

选项作用示例
-b a所有行编号(包括空行),等效cat -nnl -b a test.txt
-b t仅为非空行编号(默认行为),可省略nl -b t test.txt
-n ln行号左对齐,无补空格nl -n ln test.txt
-n rn行号右对齐(默认),左侧补空格nl -n rn test.txt
-n rz行号右对齐,左侧补0填充(固定位数)nl -n rz test.txt
-w N指定行号的宽度(默认6位),N为数字nl -w 3 test.txt(行号占3位)
-s 符号指定行号与内容之间的分隔符(默认制表符\t`nl -s "
-v N指定行号的起始值(默认从1开始)nl -v 10 test.txt(从10开始编号)
-i N指定行号的递增步长(默认1)nl -i 2 test.txt(行号+2递增)

四、经典组合示例

结合选项实现精细化行号打印,覆盖日常大部分使用场景:

1. 所有行编号+行号补0+宽度3位
nl-b a -n rz -w3test.txt

输出(空行也编号,行号3位补0):

001 hello linux 002 nl command 003 004 test line
2. 行号左对齐+分隔符为|+从5开始编号
nl-nln-s"|"-v5test.txt

输出:

5|hello linux 6|nl command 7|test line
3. 配合管道使用(过滤后加行号)
# 查看/etc/passwd中含root的行,并用nl加行号greproot /etc/passwd|nl-b a -n rz -w2
4. 多文件连续编号打印
# 为file1.txt和file2.txt连续加行号,所有行编号nl-b a file1.txt file2.txt

五、与cat -n/cat -b的区别

nl是专门的行号打印工具,cat的行号功能是附属特性,三者核心差异如下,按需选择:

命令编号规则行号对齐自定义性适用场景
nl(默认)仅非空行右对齐(6位)高(宽度、分隔符、步长等)需精细化配置行号
cat -n所有行(含空行)右对齐(默认)低(无自定义选项)快速所有行加行号
cat -b仅非空行右对齐(默认)低(无自定义选项)快速非空行加行号

六、注意事项

  1. 若文件中有换行符异常(如Windows的\r\n),nl仍正常编号,可先用dos2unix转换;
  2. 行号宽度-w N若小于行号实际位数,会自动按实际位数显示,不会截断;
  3. 分隔符-s后若跟特殊符号(如\t\n),需用单/双引号包裹(如-s "\t-")。

总结

nl的核心价值是灵活的行号定制,日常使用中:

  • 快速需求用cat -n/cat -b即可;
  • 补0、自定义分隔符/起始号/步长、固定行号宽度时,优先用nl

最常用的高频组合:

  • 所有行编号+补0:nl -b a -n rz -w 3 文件名
  • 管道过滤后精细化加行号:命令 | nl -b a -s " " 文件名
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 11:01:28

Z-Image-Turbo能否离线运行?内网环境部署可行性验证

Z-Image-Turbo能否离线运行?内网环境部署可行性验证 1. 核心结论:完全支持离线部署,内网环境零依赖运行 Z-Image-Turbo 镜像不是“半离线”或“伪离线”,而是真正意义上的全离线可运行环境。它不依赖任何外部网络请求&#xff0…

作者头像 李华
网站建设 2026/4/16 13:10:25

基于YOLO11的校园安全检测方案实战

基于YOLO11的校园安全检测方案实战 校园安全是教育管理中的核心关切——学生聚集区域的异常行为识别、危险物品出现、人员密度超限、车辆违规闯入等场景,都需要快速、稳定、可部署的视觉感知能力。YOLO11作为新一代高效目标检测框架,在精度与速度平衡上…

作者头像 李华
网站建设 2026/4/16 14:41:58

ResNet18 OCR镜像未来更新计划,开发者透露新功能

ResNet18 OCR镜像未来更新计划,开发者透露新功能 OCR文字检测正从实验室走向千行百业的生产现场。当一张商品包装图、一份扫描合同、一段手机截图被上传到Web界面,0.2秒后,所有文字区域自动框出、内容清晰排列——这背后不是魔法&#xff0c…

作者头像 李华
网站建设 2026/4/16 11:03:12

从零开始学AI绘画:麦橘超然新手入门完整教程

从零开始学AI绘画:麦橘超然新手入门完整教程 你是不是也试过打开一堆AI绘画工具,结果被复杂的参数、报错信息和显存不足的提示劝退?别急——这次我们不讲大道理,不堆术语,就用一台中端显卡(甚至低配设备&a…

作者头像 李华
网站建设 2026/4/16 14:29:03

Multisim安装教程:零基础快速理解安装流程

以下是对您提供的博文内容进行 深度润色与工程化重构后的终稿 。全文已彻底去除AI生成痕迹,摒弃模板化结构、空洞术语堆砌和机械式罗列,转而以一位 有十年高校电子实验室运维经验 五年NI生态项目交付背景的工程师视角 ,用真实场景、踩坑…

作者头像 李华
网站建设 2026/4/16 12:56:47

从零开始学es安装:项目应用入门

以下是对您提供的博文《从零开始学 Elasticsearch 安装:项目应用入门技术深度解析》的 专业级润色与结构重构版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然、老练、有“人味”,像一位在一线踩过无数坑的ES…

作者头像 李华