首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Perl计算文件中的字符、单词和行数?

如何使用Perl计算文件中的字符、单词和行数?
EN

Stack Overflow用户
提问于 2009-04-23 14:45:25
回答 8查看 55.4K关注 0票数 19

使用Perl (不使用wc)计算文本文件的字符数、单词数和行数的最佳方法是什么?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-04-23 14:54:53

下面是perl代码。计算单词可能有些主观,但我只是说它是任何不是空格的字符串。

代码语言:javascript
复制
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");
票数 25
EN

Stack Overflow用户

发布于 2009-04-23 15:08:59

bmdhacks答案的一个变体可能会产生更好的结果,那就是使用\s+ (甚至更好的\W+)作为分隔符。考虑一下字符串“the fox brown fox”(如果不明显,则增加空格)。使用单个空格字符的分隔符将得到6个单词计数,而不是4个。所以,试一试:

代码语言:javascript
复制
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+作为分隔符将阻止标点符号(以及其他内容)被算作单词。

票数 7
EN

Stack Overflow用户

发布于 2009-04-23 14:50:49

Word Count tool对文本文件中的字符、单词和行进行计数

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/782087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档