如何在Bash中计算一个文件的行数?

523 阅读3分钟

在任何代码或程序中,有时存在这样的情况,我们需要知道文件档案的数据有多大。我们可以通过文件的行数来获得这个信息,而不是查阅整个数据。手动计算行数会耗费很多时间。因此,我们使用了这些工具,使我们能够得到我们想要的输出。在本指南中,本指南将介绍一些常见和不常见的计算文件行数的方法。

为了理解这个概念,我们需要有一个文本文件。这样我们就可以在这个特定的文件上应用这些命令。我们已经创建了一个文件。考虑一个名为file1.txt的文件。

$ cat  file1.txt

否则,你首先要创建一个文件。文件可以通过许多方法创建。我们将通过命令中带有角括号的echo来完成。

$ echo “text to be written in the file” > filename

例1

在文章的开头,我们已经通过cat命令显示了一个文件的内容。这个例子意味着在cat命令中使用了"-n"。该命令的输出将构成一个文件的行数和文本内容。因此,我们将得到相应文件中的总行数。

$ cat –n file1.txt   

相关图片显示,该文件有11行。

同样地,还有一个例子,我们在命令中使用了 "nl"。N将显示数字,而-l是用来列举所有带有行号的内容。所以,这里的命令是。

$ nl file1.txt

例2

这个例子是关于 "wc "命令的使用。它用于查找字数、字节数、行数和字符数。在这里,我们将只收到行数,而没有文字。要得到结果,请使用 "wc "命令中的-l。这将提供带有文件名的总行数作为结果。因此,我们将应用这个命令。

$ wc –l file1.txt

在结果中,行数和数据都可以看到。现在,如果你想只显示总行数而不显示文件名。那么如果你想只显示总行数而不显示文件名,你可以在命令中使用一个左角括号。在这里,命令shell已经将file1.txt文件重定向到了wc -l命令的标准输入。

$ wc –l file1.txt

使用 "wc "命令的另一种方法是将其与cat命令一起使用。这个命令允许在使用cat和wc -l的同时使用 "管道"。这些内容将作为命令中pipe之后的内容部分的输入。在这两种情况下,收到的输出都是并发的。但使用的方式是不同的。

$ cat file1.txt | wc -l

例3

在这个例子中阐述了 "sed "命令的使用。流媒体编辑器指定用来转换文件的文本。这主要用在我们需要找到所需的文本,然后替换它的命令中。"Sed "得到一个以上的参数来显示行数。在这个命令中,我们将使用 "sed "来获取相应文件的计数。

我们将在这里使用两个运算符来描述它的用法,都是用。

"="

第一个是平等符号。我们将使用 "sed",一个等号(=)和-n选项。这个组合将带来空行加上行的编号。这里不会显示内容。这里只显示行号。

$ sed –n ‘=’ file1.txt

"$="

在第二个选项中,除了平等符号,我们还将使用美元符号。这个组合是与 "sed "和-n选项一起使用的。与上一个例子不同,我们将只知道总行数,而不是上下文。有时我们需要得到最后一行的编号,而不是文件行的所有行数,;为此,我们使用这种方法。

$ sed –n ‘$=’ file1.txt

例4

命令中使用了'awk'来收集行的总数字。所有的行都被看作是记录。在END部分,我们将看到记录编号(NR)。NR变量是'awk'的一个内置变量。只有最后一个数字会被显示出来。因此,我们可以很容易地知道文件中的总行数。

$ awk ‘END { print NR }’ file1.txt

例5

"Grep "是全局表达式正则打印的意思。"Grep "是另一种查找文件名或文件中与文本有关的术语的方法。"Grep "通过特殊字符搜索文件中的特定模式,也通过正则表达式找到与命令中存在的表达式相匹配的特定表达式。

同样地,这里使用了'$'。这是已知的寻找和显示行的末端。'-count'是用来计算所有与文件中的表达式相匹配的行。因此,通过使用这个命令,我们将能够到达文件的末端,并计算内容的行数。

$ grep - -regexp = “$” - -count file1.txt             

另一种使用grep命令的方法是与".*"和-c一起使用。"-c "用于计算所有的行,而 "*"符号意味着所有的文本。它意味着要计算文本中的所有行号。

$ grep –c “.*” file1.txt

在这个类型中,我们同时使用了-h和-c。正如我们所知,c是计数,而-h将显示所有匹配的行。这意味着它将显示带有文件名的最后一行。

$ grep –Hc “.*” file1.txt

例6

我们用一个 "Perl "来计算整个文件的行数。"Perl "被扩展为 "实用提取和报告语言"。它是一种类似bash的脚本语言。它的工作方式与 "awk "命令类似。它也在结尾处打印行号,通过命令显示。这里的"$"符号意味着接近文件的结尾。"-lne "是指行。

$ perl –lne ‘END { print $. }’ file1.txt

例7

在这里我们将尝试用一个循环来计数。在编程语言中,我们经常在任何算术操作中使用循环来计数。同样地,在这里我们将使用一个while循环。循环中显示了一个到最后的条件,计数过程是在while整体中完成的。循环的工作方式是,逐行读取输入的数据,每次增加计数的数值。我们在最后打印计数。

$ count = 0

$ While read

Do

((count = $count+1))

Done < file1.txt

$ echo $count

结语

行数的计算方法是不同的。通过这篇文章可以证明,要计算一个文件的行数,我们可以使用许多方法,我们可以使用许多方法来计算一个文件的行数。通过使用 "grep"、"cat "和 "awk "方法,我们可以获得所需的输出。