使用 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) 命令将每个输入文件视为一条单独的记录。然后,可以通过引用 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 命令是最常用的,也是查找特定文件行号最简单的方法。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

