Grep 查找单词而不是行

Grep 查找单词而不是行

我需要搜索文本文件的字数。该文件包含句子行,我只关心单词出现的次数而不是行数。如何告诉 grep 搜索单词而不是行?

例如,如果我使用grep -c '^ab'(以 开头的单词ab),它只返回以 开头的行数ab,而不是以 开头的单词数ab

答案1

使用 GNU grep,您可以使用该-o标志来获取所有匹配项,然后对它们进行计数wc -l

grep -o '\<ab' file.txt | wc -l

或者我想你可以用 grep 本身来计数:

grep -o '\<ab' file.txt | grep -c ''

(“ \<”的意思是“单词的开头”。)

答案2

如果你想计算 中的单词数file.txt,而不是行数,只需将每个单词放在自己的行上即可:

tr " " "\n" file.txt | grep -c '^ab'

相关内容