在 Linux 系统中,可以使用 grep、tr 和 wc 命令组合来实现对文本文件中单词的计数,同时忽略停用词。假设你有一个包含停用词的文本文件 stopwords.txt,内容如下:
the and is in it 现在你想统计另一个文本文件 input.txt 中的单词数量,同时忽略 stopwords.txt 中的停用词。你可以使用以下命令:
grep -oE '\w+' input.txt | tr ' ' '\n' | grep -vE "($(cat stopwords.txt | tr ' ' '|'))" | wc -l 解释:
grep -oE '\w+' input.txt:从 input.txt 文件中提取所有单词(连续的字母、数字和下划线)。tr ' ' '\n':将单词之间的空格替换为换行符,使每个单词单独一行。grep -vE "($(cat stopwords.txt | tr ' ' '|'))":使用扩展正则表达式过滤掉 stopwords.txt 中的停用词。wc -l:计算过滤后的行数,即单词数量。注意:这个命令假设停用词文件中的单词大小写敏感。如果你想忽略大小写,可以将 grep -vE 部分改为 grep -i -vE,或者在读取停用词文件时将所有单词转换为小写(或大写):cat stopwords.txt | tr ' ' '| | tr '[:upper:]' '[:lower:]'。