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

operating systemlinuxmca

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"出现的次数。

方法

我们在文件中使用 grep 查找单词"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

相关文章


有用资源