如何用Shell命令统计文件中特定单词‘new’的出现次数?
统计大文件中单词‘new’的出现次数
你之前用grep搭配wc只得到包含目标单词的行数,是因为默认情况下grep会把整行作为一个匹配结果返回,而不是每个单独的单词实例。要统计单词的出现次数,需要让grep输出每个匹配的单词,再统计数量:
精确匹配独立单词(推荐)
如果要统计独立的单词‘new’(避免匹配‘newer’‘renew’这类包含‘new’的词),用下面的命令:
grep -o '\<new\>' your_large_file.txt | wc -l
匹配所有包含‘new’的子串
如果不需要区分独立单词,只要字符串里有‘new’就算,可以简化:
grep -o 'new' your_large_file.txt | wc -l
参数说明
-o:强制grep只输出每个匹配的片段,每个匹配单独占一行,这样后续wc就能统计次数\<和\>:单词边界锚点,确保匹配的是完整的‘new’单词,而非其他单词的一部分wc -l:统计输出的总行数,也就是‘new’的出现次数
大文件优化
如果文件特别大,用fgrep(即grep -F)会更快,因为它处理固定字符串匹配的效率更高:
fgrep -o '\<new\>' your_large_file.txt | wc -l
内容的提问来源于stack exchange,提问作者mostafa elmadany
相关产品推荐
相关产品推荐

