news 2026/4/3 0:58:37

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/1 18:34:28

再也不怕乱入物体!fft npainting lama移除神器体验

再也不怕乱入物体!FFT NPainting LAMA移除神器体验 在日常处理照片时,你是否也遇到过这些令人抓狂的瞬间:旅游照里突然闯入的路人甲、产品图上碍眼的水印、老照片中模糊的电线、会议合影里不小心入镜的同事……传统修图软件需要反复套索、羽…

作者头像 李华
网站建设 2026/3/29 18:13:22

利用OrCAD Capture调用Pspice进行前仿真实战案例

以下是对您提供的博文内容进行 深度润色与结构重构后的专业级技术文章 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然、老练、富有工程师“现场感”; ✅ 摒弃模板化标题(如“引言”“总结”)&#…

作者头像 李华
网站建设 2026/3/29 23:52:44

RISC架构如何简化指令:深度剖析设计哲学

以下是对您提供的博文《RISC架构如何简化指令:深度剖析设计哲学》的 全面润色与专业升级版 。我以一位深耕嵌入式系统与处理器微架构多年的工程师技术博主身份,重新组织逻辑、强化技术纵深、剔除AI腔调、注入真实工程洞察,并严格遵循您提出…

作者头像 李华
网站建设 2026/3/13 10:55:15

从零实现有源滤波器仿真:电路仿真软件实践

以下是对您提供的博文内容进行 深度润色与专业重构后的版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然、老练、有工程师“人味”; ✅ 摒弃所有模板化标题(如“引言”“总结”“核心知识点”)&a…

作者头像 李华
网站建设 2026/3/16 9:39:41

不用Photoshop!Qwen-Image-Layered直接输出可编辑图层

不用Photoshop!Qwen-Image-Layered直接输出可编辑图层 发布时间:2025年12月30日 作者:AITechLab 模型页面:https://huggingface.co/Qwen/Qwen-Image-Layered 官方仓库:https://github.com/QwenLM/Qwen-Image-Layered…

作者头像 李华
网站建设 2026/3/31 19:56:46

用FSMN-VAD做了个语音转写预处理项目,附步骤

用FSMN-VAD做了个语音转写预处理项目,附步骤 在做语音识别项目时,你有没有遇到过这些问题:一段10分钟的会议录音,真正说话的时间可能只有3分钟,其余全是静音、咳嗽、翻纸声;ASR模型对静音段照样计算&#…

作者头像 李华