如何使用Shell脚本统计文本文件中单词的出现次数?


Linux shell 脚本拥有许多强大的工具来处理文件中的数据。其中一项功能是查找模式并计算匹配模式出现的次数。一个例子就是计算给定文件中特定单词出现的次数。这是通过组合用于模式搜索和计数的命令来实现的。以下是可用于此需求的方法。

输入文件

让我们使用以下文件来演示这些例子。

$ cat inspire.txt
Mastering anything needs practice.
It also needs patience.
And it needs time and other resources.

使用 grep 和 wc

grep 命令查找模式,但它有一些开关可以用来每次找到模式时在新的一行打印它,即 -o 选项。我们还可以使用 -i 开关来忽略找到的单词的大小写。最后,结果可以管道到 wc 以获得最终计数。在这个例子中,我们计算单词“needs”出现的次数。

方法

我们在文件中搜索单词“needs”。使用 -o 开关将每个输出作为新的一行。使用 -i 忽略大小写。然后将其通过管道传输到 wc 以获取行数,最终也就是单词出现的次数。

$ grep -o -i needs inspire.txt | wc -l

运行上述代码得到以下结果:

3

使用 tr 命令

tr 命令将一个字符串转换为另一个字符串。因此,我们将所有空格转换为换行符,然后使用 grep 搜索模式。最后,使用 grep 的 -c 开关进行计数和 -i 开关忽略大小写来计算特定单词出现的次数。

tr '[:space:]' '[
*]' < inspire.txt | grep -i -c it

运行上述代码得到以下结果:

2

更新于:2020年1月3日

9K+ 浏览量

启动你的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.