基础命令:cat
+ -n
/ -b
作用:快速显示文件内容并添加行号
语法:
cat -n 文件名 # 显示所有行号(包括空行) cat -b 文件名 # 仅显示非空行的行号(空行跳过)
示例:
cat -n log.txt
输出效果:
1 第一行内容
2 第二行内容
3
4 第四行内容
专业行号工具:nl
作用:专为行号设计,支持格式定制
语法:
nl 文件名 # 显示行号(默认跳过空行) nl -ba 文件名 # 显示所有行号(包括空行) nl -w 2 -s ') ' 文件名 # 定制行号格式(宽度2字符,后缀") ")
示例:
nl -ba data.txt
输出效果:
1 第一行
2
3 第三行
过滤时显示行号:grep
+ -n
作用:搜索匹配内容时同步显示行号
语法:
grep -n "关键词" 文件名
示例:
grep -n "error" server.log
输出效果:
15:error: 文件未找到
28:error: 权限拒绝
高级文本处理:awk
作用:灵活控制行号格式与条件
语法:
awk '{print NR, $0}' 文件名 # 显示行号+内容 awk 'NF {print NR, $0}' 文件名 # 跳过空行(NF非零)
示例:
awk '{printf "[%04d] %s\n", NR, $0}' config.conf
输出效果:
[0001] port=8080
[0002]
[0003] host=localhost
流编辑器:sed
作用:编辑文件时附加行号
语法:
sed '=' 文件名 | sed 'N;s/\n/\t/' # 显示行号后换行,合并为一行
示例:
sed '=' data.txt | sed 'N;s/\n/ /'
输出效果:
分页查看:less
+ -N
作用:浏览大文件时实时显示行号
语法:
less -N 文件名
操作:
- 按
G
跳转至文件末尾 - 按
1G
返回首行 - 按 搜索内容
场景选择建议
需求 | 推荐命令 |
---|---|
快速查看完整文件 | cat -n |
排除空行 | cat -b 或 nl |
搜索关键词并定位 | grep -n |
定制行号格式 | awk 或 nl |
浏览大文件 | less -N |
脚本中处理行号 | awk |
注意事项
- 特殊字符处理:
- 若文件包含制表符(Tab),
cat -n
可能对齐异常,建议用expand -t 4 文件名 | cat -n
转换空格。
- 若文件包含制表符(Tab),
- 大文件优化:
- 避免用
cat
处理GB级日志,优先使用less -N
或grep -n
分段加载。
- 避免用
- 行号重置:
- 合并多个文件时,
cat -n file1 file2
会连续计数,若需独立计数,结合循环:for f in file*; do echo "$f:"; cat -n "$f"; done
- 合并多个文件时,
Linux列出行号的核心命令包括 cat -n
(基础)、nl
(专业)、grep -n
(搜索)、awk
(灵活定制)和 less -N
(大文件),根据场景选择工具可显著提升效率,如调试代码推荐 cat -n
,分析日志首选 grep -n
,掌握这些方法能高效定位数据,提升命令行操作能力。
引用说明基于Linux核心工具手册(GNU Coreutils 9.4)及开发者社区实践总结,参考命令官方文档确保准确性。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9811.html