最直接的方法是使用nl命令,它能精细控制行号显示,如跳过空行、自定义编号样式等,适合复杂场景;而cat -n简单快捷,适用于快速浏览;grep -n用于查找并显示匹配行的行号,sed和awk则在需要条件判断或脚本集成时更灵活。

要在Linux中查看文件内容并同时显示行号,最直接且功能强大的方法是使用
nl
cat -n
grep -n
sed
awk
nl
最直接的解决方案,就是请出我们的主角
nl
my_script.sh
#!/bin/bash echo "Hello, world!" echo "" echo "This is a test script." echo "Line 4"
要显示其行号,最简单的用法是:
nl my_script.sh
这会给每一行都加上行号。如果你只是想快速看一眼,
cat -n
cat -n my_script.sh
两者都能达到目的,但在更复杂的场景下,
nl
这个问题,我个人觉得是理解这两个命令的关键。从表面上看,
cat -n
nl
cat -n
cat
-n
而
nl
cat -n
nl
所以,我的经验是,如果你只是想快速浏览一个文件,不在乎空行有没有编号,或者只是想给所有行都加上编号,
cat -n
这时候,就得请出
nl
nl
cat -n
nl
我经常用到的几个高级选项是:
-b STYLE
STYLE
a
t
n
pREGEX
REGEX
cat -n
nl -ba my_script.sh
nl -bp'echo' my_script.sh
这会极大地简化输出,让我一眼就能看到关键操作的行号。
-s SEPARATOR
nl -s ": " my_script.sh
这样行号和内容之间就用": "隔开了,视觉上更舒服。
-w WIDTH
nl -w 3 my_script.sh
这会将行号宽度限制在3位,不足的会用空格填充(默认行为)。
-v START_NUM
nl -v 100 my_script.sh
这样第一行就会显示为100。
-n FORMAT
FORMAT
ln
rn
rz
rz
nl -n rz -w 5 my_script.sh
这会生成5位宽的行号,不足5位时前面补零,例如
00001
这些选项的组合使用,让
nl
虽然
nl
nl
cat -n
cat -n file.txt
grep -n
grep
-n
grep
grep -n "echo" my_script.sh
这会只显示包含“echo”的行,并且每行前面都有行号。
grep -n
sed '='
sed
=
sed '=' my_script.sh | sed 'N;s/\n/\t/'
或者更简洁一点,用
paste
sed = my_script.sh | paste - -
这会先输出行号,然后是原始行。
sed
sed
sed
sed
sed
sed
awk '{print NR, $0}'
awk
NR
awk
awk '{print NR, $0}' my_script.sh这会打印行号,然后是整行内容。你可以进一步控制分隔符,甚至根据条件来打印行号。
awk '{if ($0 !~ /^$/) {print NR, $0} else {print ""}}' my_script.sh这个例子会跳过空行,只给非空行编号,有点像
nl
awk
awk
nl
awk
总之,选择哪种方法,很大程度上取决于你的具体需求、对输出格式的精细程度要求,以及你正在进行的整体工作流。没有绝对的“最好”,只有最适合当前任务的工具。我发现,在Linux的世界里,多了解一些这样的“小技巧”,能让日常工作效率提升不少。
以上就是如何在Linux中行号显示 Linux nl添加行号方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号