如何不区分大小写地统计纯文本文件中的唯一词汇?
这个程序可以用任何一种高级语言来写,只要这种语言在一般的类Unix系统上能用就行,比如Python、Perl、awk,或者一些标准的Unix工具(像sort、uniq等)。希望这个程序能快速计算出一个2MB文本文件中有多少个不同的词。
我只是需要这个程序来做个快速的检查,所以不需要特别复杂或者设计得很完美。
记得要忽略大小写哦。
非常感谢大家。
附带说明:如果你用Python,请不要用只支持3.x版本的代码。因为我用的系统只支持2.4.4版本。
8 个回答
5
使用bash/UNIX命令:
sed -e 's/[[:space:]]\+/\n/g' $FILE | sort -fu | wc -l
6
在Perl语言中:
my %words;
while (<>) {
map { $words{lc $_} = 1 } split /\s/);
}
print scalar keys %words, "\n";
4
在Python 2.4(可能在更早的版本也能用):
#! /usr/bin/python2.4
import sys
h = set()
for line in sys.stdin.xreadlines():
for term in line.split():
h.add(term)
print len(h)
在Perl语言中:
$ perl -ne 'for (split(" ", $_)) { $H{$_} = 1 } END { print scalar(keys%H), "\n" }' <file.txt