在 UNIX/Linux 中如何计算文件中的行数

在Linux中,如何查看文件有多少行?
如何统计文件中的总行数?

还有一些命令

除了上述命令外,了解一些很少使用的命令来查找文件中的行数也很有好处。

  1. 使用 nl 命令(行编号过滤器)给每一行编号。
    命令的语法是:
$ nl [filename]

示例输出:

$ nl file01.txt
     1	this is a sample
     2	file
     3	with
     4	some sample
     5	data

不是那么直接的方式来获得行数。
但是我们可以使用 awk 或者 sed 从最后一行获取计数。
例如:

$ nl file01.txt | tail -1 | awk '{print }'
5
  1. 你也可以使用vi 和vim 的命令":set number" 来设置每一行的数字,如下所示。
    如果文件很大,可以使用“Shift+G”转到最后一行并获取行数。

  2. 使用带有 -n 开关的 cat 命令来为每一行编号。
    同样,在这里我们可以从最后一行获取行数。

$ cat -n file01.txt
     1	this is a sample
     2	file
     3	with
     4	some sample
     5	data
$ cat -n file01.txt | tail -1 | awk '{print }'
5
  1. 你也可以使用 perl one lines 来查找行数:
$ perl -lne 'END { print $. }' file01.txt
5

使用 awk

如果我们必须要使用 awk 来查找行数,请使用以下 awk 命令:

$ awk 'END{print NR}' [filename]

示例输出:

$ awk 'END{print NR}' file01.txt
5

使用“wc -l”

有几种方法可以计算文件中的行数。
但最简单和广泛使用的方法之一是使用“wc -l”。
wc 实用程序将每个输入文件或者标准输入(如果未指定文件)中包含的行数、字数和字节数显示到标准输出。

语法是:

# wc -l [filename]

因此,请考虑如下所示的文件:

$ cat file01.txt
this is a sample
file
with
some sample
data
  1. 在这个文件上运行“wc -l”命令时,输出行数和文件名。
$ wc -l file01.txt
       5 file01.txt
  1. 要从结果中省略文件名,请使用:
$ wc -l < file01.txt
       5
  1. 我们始终可以使用管道将命令输出提供给 wc 命令。
    例如:
$ cat file01.txt | wc -l
       5

我们可以在此处使用任何命令而不是 cat。
任何命令的输出都可以通过管道传输到 wc 命令以计算输出中的行数。

欢迎来到之路教程(on itroad-com)

使用 sed

使用以下 sed 命令语法使用 GNU sed 查找行数:

$ sed -n '$=' [filename]

示例输出:

$ sed -n '$=' file01.txt
5

使用 grep

我们的老朋友“grep”也可以用来计算文件中的行数。
这些示例只是让我们知道有多种方法可以在不使用“wc -l”的情况下计算行数。
但是如果被问到我将始终使用“wc -l”而不是这些选项,因为它太容易记住了。

$ grep -c ".*" [filename]

示例输出:

$ grep -c ".*" file01.txt
5

使用 GNU grep,我们可以使用以下 grep 语法:

$ grep -Hc ".*" [filename]

这是用于查找行数的 grep 命令的另一个版本。

$ grep -c ^ file01.txt
5

示例输出:

$ grep -Hc ".*" file01.txt
file01.txt:5
日期:2020-09-17 00:10:54 来源:oir作者:oir