如何在 Linux 上为文本文件添加行号

有没有想过如何在文本文件的标准输出中添加行号? 这个简短的指南解释了如何将行号添加到给定的文本文件中。 有多种方法可以将行号添加到文件中。 在这里,我介绍了 6 种不同的方法来做到这一点。 如果将来遇到任何方法,我将继续添加更多方法。 最好将此指南添加为书签,稍后再回来查看是否有任何补充。

内容

  1. 方法 1 – 使用“nl”命令
  2. 方法 2 – 使用 ‘cat’ 命令
  3. 方法 3 – 使用 ‘awk’ 命令
  4. 方法 4 – 使用“sed”命令
  5. 方法 5 – 使用 ‘less’ 命令
  6. 方法 6 – 使用“grep”命令
  7. 帮助我们帮助您:

方法 1 – 使用“nl”命令

“nl”命令专用于向文件添加行号。 它将给定文件写入标准输出,并添加行号。 我有一个文件名为 文件.txt 有以下内容。

$ cat file.txt  This is line1 This is line2 This is line3  This is line5   This is line8

正如您在上面的输出中看到的,该文件有 8 行,其中有 3 个空行。 让我们添加行号。

为此,请运行:

 $ nl file.txt  1 This is line1  2 This is line2  3 This is line3    4 This is line5      5 This is line8

nl 命令不会考虑空行。 它只会将数字添加到非空行。 如果要对包括空白行在内的所有行进行编号,请使用 -b 像下面这样的标志。

 $ nl -b a file.txt   1 This is line1  2 This is line2  3 This is line3  4   5 This is line5  6   7   8 This is line8

此外,您可以在数字后添加符号/特殊字符。 例如,要在数字后添加点 (.),请运行:

 $ nl -s "." file.txt   1.This is line1  2.This is line2  3.This is line3    4.This is line5      5.This is line8

您可能想要对齐输出的宽度。 为此,请使用 -w 标志,如下所示。

$ nl -w2 file.txt

方法 2 – 使用 ‘cat’ 命令

cat 命令用于显示文件的内容。 如果要在文件的输出中添加数字,请使用 -n 标志,如下所示。

 $ cat -n file.txt   1 This is line1  2 This is line2  3 This is line3  4   5 This is line5  6   7   8 This is line8

或者,您可以将标准输出传递给新文件,如下所示。

$ cat -n file.txt > newfile.txt

您可能还想摆脱重复的空行。

 $ cat -s -n file.txt   1 This is line1  2 This is line2  3 This is line3  4   5 This is line5  6   7 This is line8

方法 3 – 使用 ‘awk’ 命令

要使用 awk 命令将行号添加到文件的输出,请运行:

$ awk 'BEGIN{i=1} /.*/{printf "%d.% sn",i,$0; i++}' file.txt  1.This is line1 2.This is line2 3.This is line3 4. 5.This is line5 6. 7. 8.This is line8

可能会注意到,我在 BEGIN 参数中将起始编号指定为 1。 您可以分配您选择的任何其他起始编号,例如 5,如下所示。

$ awk 'BEGIN{i=5} /.*/{printf "%d.% sn",i,$0; i++}' file.txt  5.This is line1 6.This is line2 7.This is line3 8. 9.This is line5 10. 11. 12.This is line8

如果您不想考虑空行,请使用以下命令:

$ awk 'BEGIN{i=0} {if($0 !~ /^$/) {printf ("%d.%s n",i,$0); i++} else { print $0} } ' file.txt

如果您认为上述命令有点难记,请改用以下命令。

$ awk '{ print FNR " " $0 }' file.txt  1 This is line1 2 This is line2 3 This is line3 4  5 This is line5 6  7  8 This is line8

如果要增加数字和文本之间的间距,请运行:

$ awk '{ print FNR "t " $0 }' file.txt

方法 4 – 使用“sed”命令

要使用 sed 命令将行号添加到文件的标准输出,请运行:

$ sed '/./=' file.txt | sed '/./N; s/n/ /' 1 This is line1 2 This is line2 3 This is line3  5 This is line5   8 This is line8

sed 命令有一个我最喜欢的很酷的功能。 我们可以显示一个 ñ文件中的第 行。 例如,要显示文件中的第 3 行,请运行:

$ sed -n 3p file.txt  This is line3

方法 5 – 使用 ‘less’ 命令

要使用 less 命令将行号添加到文件的标准输出,请运行:

 $ less -N file.txt   1 This is line1  2 This is line2  3 This is line3  4   5 This is line5  6   7   8 This is line8

方法 6 – 使用“grep”命令

grep 命令 可用于搜索包含特定行的行。 例如,如果要将行号添加到具有特定字母的行中 线, 跑:

$ grep -n "line" file.txt  1:This is line1 2:This is line2 3:This is line3 5:This is line5 8:This is line8

请注意,此命令只会将数字添加到包含搜索字符串的行中。 给定文件中的所有其他内容都将被省略。

就这样。 有关上述命令的更多详细信息,请参阅手册页。 您现在知道将行号添加到文本文件的不同方法。 希望这个对你有帮助。 更多好东西即将到来。 敬请关注!

干杯!

感谢您的光临!

帮助我们帮助您:

  • 订阅我们的电子邮件通讯: 立即注册
  • 支持 OSTechNix: 通过贝宝捐款
  • 下载免费的电子书和视频: TradePub 上的 OSTechNix
  • 联系我们: Facebook | 推特 | 谷歌加 | 领英 | RSS订阅

祝你有美好的一天!!

将行号添加到文件输出 BASHCLILinuxLinux 命令