如何使用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以获得最终计数。在本示例中,我们对“需要”一词的出现次数进行计数。

方法

我们在文件中使用grep表示“需要”一词。使用–o开关将每个输出作为新行。使用–i忽略大小写。然后将其通过管道传输到wc以获得行数,该行数最终是单词出现的次数。

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

运行上面的代码给我们以下结果-

3

使用tr命令

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

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

运行上面的代码给我们以下结果-

2