我需要搜索文本文件的字数。该文件包含句子行,我只关心单词出现的次数而不是行数。如何告诉 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'