使用Perl (不使用wc)计算文本文件的字符数、单词数和行数的最佳方法是什么?
发布于 2009-04-23 14:54:53
下面是perl代码。计算单词可能有些主观,但我只是说它是任何不是空格的字符串。
open(FILE, "<file.txt") or die "Could not open file: $!";
my ($lines, $words, $chars) = (0,0,0);
while (<FILE>) {
$lines++;
$chars += length($_);
$words += scalar(split(/\s+/, $_));
}
print("lines=$lines words=$words chars=$chars\n");
发布于 2009-04-23 15:08:59
bmdhacks答案的一个变体可能会产生更好的结果,那就是使用\s+ (甚至更好的\W+)作为分隔符。考虑一下字符串“the fox brown fox”(如果不明显,则增加空格)。使用单个空格字符的分隔符将得到6个单词计数,而不是4个。所以,试一试:
open(FILE, "<file.txt") or die "Could not open file: $!";
my ($lines, $words, $chars) = (0,0,0);
while (<FILE>) {
$lines++;
$chars += length($_);
$words += scalar(split(/\W+/, $_));
}
print("lines=$lines words=$words chars=$chars\n");
使用\W+作为分隔符将阻止标点符号(以及其他内容)被算作单词。
发布于 2009-04-23 14:50:49
Word Count tool对文本文件中的字符、单词和行进行计数
https://stackoverflow.com/questions/782087
复制相似问题