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

时间:2020-03-21 11:42:35  来源:igfitidea点击:

本简要教程说明了如何将行号添加到给定的文本文件中。
有多种向文件中添加行号的方法。

方法1-使用“ nl”命令

“ nl”命令专用于向文件添加行号。
它将给定文件写入标准输出,并添加行号。
我有一个名为file.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.% s\n",i,
$awk 'BEGIN{i=5} /.*/{printf "%d.% s\n",i,
$awk 'BEGIN{i=0} {if(
$awk '{ print FNR " " 
$awk '{ print FNR "\t " 
$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
}' file.txt
}' 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
!~ /^$/) {printf ("%d.%s \n",i,
$sed -n 3p file.txt 
This is line3
); i++} else { print
$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
} } ' file.txt
; 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
; 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,如下所示。

$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

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

##代码##

如果我们认为上面的命令很难记住,请改用以下命令。

##代码##

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

##代码##

方法4-使用“ sed”命令

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

##代码##

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

##代码##

方法5-使用“less”命令

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

##代码##

方法6-使用“ grep”命令

grep命令可用于搜索包含特定行的行。

如果要将行号添加到具有特定字母的行(例如line)中,请运行:

##代码##

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