如何使用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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP