使用Linux bash命令统计文件行数


概述

我们有时需要确定特定文本文档的大小。例如,如果我们试图弄清楚某个电子邮件有多长,我们可以使用该邮件的行数来帮助我们估计其大小。Linux 有几种不同的方法可以确定文本文档的长度。

我们将仔细研究一些计算特定文件行数的最常用方法。

设置

在本快速教程中,我们将使用名为“programing.txt”的文本文件,其中包含当今使用的一些最流行的计算机语言。

$ cat programming.txt
JavaScript
Java
C
Python
C#
PHP
C++
Go
R
Ruby

如果我们手动计算单词数,我们会得到10。但是如果我们手动计算,随着单词数量的增加,它很快就会变成一项繁琐的任务,难以完成。但是,有一些基于命令的程序可以帮助我们自动计算单词数。

wc 命令

要计算字符数、换行符等,分别使用 wc -l、wc -w 和 wc -c 命令。

我们使用 wc 命令来计算文件中的行数。添加 -l 标志会给出总行数和文件名。

我们可以使用 wc -l (单词计数) 命令查看文件中共有多少行。

$ wc -l programming.txt
10 programming.txt

从输出中我们可以看到,它输出了数字 10,表示总行数,以及文件名 programming.txt。

我们可以使用 shell 将 program.txt 文件重定向到 wc -l 命令的标准输出。这将给出字符数,而不会显示文件名。

$ wc -l < programming.txt
10

另一种在文件中运行命令的常用方法是使用cat 命令 并将它们通过 bash 解释器传递。

$ cat programming.txt | wc -l
10

sed 命令

sed 是一种对文件执行基本转换的工具。它主要用于在给定的输入中查找和替换字符串。您也可以用它来计算特定输入中的行数。

sed 可用于打印每一行的行号。

sed -n ‘=’

我们可以使用“sed”命令、“-n”选项和等号 (=) 来打印行号而不显示文件的文本。

$ sed -n '=' programming.txt
1
2
3
4
5
6
7
8
9
10

从结果中我们可以看到,该命令只输出了行数。但是,这种方法在处理大型文本文档时扩展性不好。

sed -n ‘$=’

我们通常更喜欢使用-c 选项'=' 参数来计算文本文档的总行数。sed 命令的输出是文档的总行数。

$ sed -n '$=' programming.txt
10

awk 命令

awk 命令将每个输入文件视为一个单独的记录。然后可以通过引用内置 awk 变量 NR(记录数)在最后打印记录数。

$ awk 'END { print NR }' programming.txt
10

cat 命令

cat (连接) 命令将多个文件作为参数,并将它们打印到标准输出。它使用 -n 选项显示每个文件的行及其对应的编号。

$ cat -n programming.txt
   1     JavaScript
   2     Java
   3     C
   4     Python
   5     C#
   6     PHP
   7     C++
   8     Go
   9     R
   10    Ruby

我们可以看出,该命令输出了行号和文件的内容。但是,这种方法对于较大的文件并不实用。

结论

我们已经看到了使用Bash 统计文本文件行数的几种不同方法。

在处理大型文件时,一些显示文件内容的命令会变得低效且不实用。

wc -l 命令是最常用的,也是查找特定文件行号最简单的方法。

更新于:2023年11月3日

49K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告