当前位置:首页>Linux>别再用cat -n了!Linux行号神器nl的威力,你根本想不到

别再用cat -n了!Linux行号神器nl的威力,你根本想不到

  • 2026-10-11 07:58:20
别再用cat -n了!Linux行号神器nl的威力,你根本想不到
你是不是一直用cat -n给文件加行号?好用,但功能相对固定! 

在linux中,nl才是专业行号统计命令,支持自定义行号对齐、前置补零、自定义起始编号、更改分隔符、控制空行编号、精准匹配关键词编号等功能,对于运维排错、脚本编写、日志分析、文档整理都格外实用!

今天一篇把nl讲透、参数+实例 场景全覆盖,新手收藏就能用,老手也能查漏补缺!
一、nl 是什么?
nl=number lines 专门给文件/输出加行号的命令。
它和cat -n 最大区别: 
cat -n:空行也编号,格式固定 
nl:默认空行不编号,行号样式可自由定制  
一句话:简单行号用cat -n,专业可控用nl。
二、nl基础用法
1、默认:只给非空行编号
nl test.txt

空行不显示行号

• 行号默认右对齐、占6个字符

• 行号和内容默认用tab分隔

2.空行也要编号(等同于cat -n)

nl -b a test.txt

-b a:all,所有行都编号(含空行)

三、核心参数

nl的强大之处在于其丰富的参数,可以精确控制行号的每一个细节。

1.行号编号规则(-b)

nl -b a   #所有行编号(含空行)nl -b t   #只给非空行编号(默认)nl -b n   #不编号(只显示内容)

2.行号对齐方式(-n)

nl -n ln  #左对齐nl -n rn  #右对齐(默认,不补零)nl -n rz  #右对齐,**左侧补零**(超常用)

3、行号宽度(-w)

nl -w 4 test.txt   #行号占4个字符nl -w 3 -n rz test.txt  #3位补零:001、002...

4.行号起始值(-v)

nl -v 100 test.txt  #从100开始编号

5.行号与内容分隔符(-s)

nl -s ": " test.txt   #用冒号+空格分隔nl -s "|" test.txt    #用竖线分隔

6.行号增量(-i)

nl -i 5 test.txt   #行号每次 +5:1、6、11...

四、常用组合命令

场景 1:日志/代码,空行也要编号(cat -n 平替)

nl -b a test.txt

场景 2:脚本输出,行号补零(整齐好看)

nl -b a -n rz -w 4 a.sh

输出:

0001    #!/bin/bash0002    # 监控 80 端口已建立连接数,超过阈值告警00030004    PORT=800005    LIMIT=000060007    # 统计当前 80 端口 ESTABLISHED 连接数

场景 3:从指定行开始编号(排错/ 文档拆分)

nl -v 50 -s " → " test.txt

-s " → ":行号和内容之间用 → 分隔,美观清晰

场景 4:配合管道,给命令输出加行号

ps aux | nl    #列出所有进程详细信息,并且给每一行自动加上行号ls -l /etc | nl -n rz -w 3 #查看/etc目录下所有文件的详细列表,并且右对齐,三位数编号 

场景 5:只给匹配关键字的行编号(高级)

nl -b p'error' app.log   #只给含error的行编号

只给包含 error 关键词的行 加行号并显示,其他行不显示、不加行号,备注:-b p与关键词中间不能加空格。

五、nl vs cat -n 怎么选?

• 简单看行号、临时用 → cat -n

• 写脚本、生成报告、日志排错、格式要整齐 → nl

nl优势:补零、对齐、起始值、分隔符、空行控制,全部可控!

六、总结

nl核心记忆点:

• -b a:空行也编号

• -n rz:右对齐补零(格式化神器)

• -w 数字:行号宽度

• -v 数字:起始行号

• -s 符号:自定义分隔符

日常运维、日志排查、脚本编写、文档整理,nl一个命令全搞定,比cat -n强太多!如果觉得文章对你的运维工作有帮助,记得点赞加关注。

#运维 #linux运维 #linux干货命令 #nl命令实用指南

最新文章

随机文章