perl对包含特定文本的文件进行行计数



基本上,我想计算包含单词Out的行数。

my $lc1 = 0;
open my $file, "<", "LNP_Define.cfg" or die($!);
#return [ grep m|Out|, <$file> ]; (I tried something with return to but also failed)
#$lc1++ while <$file>;
#while <$file> {$lc1++ if (the idea of the if statement is to count lines if it contains  Out)
close $file;
print $lc1, "n";

命令行可能也是您的潜在选择:

perl -ne '$lc1++ if /Out/; END { print "$lc1n"; } ' LNP_Define.cfg

-n假设while循环用于END之前的所有代码
-e要求代码被"包围。

只有当以下if语句为true时,$lc1++才会计数。

if语句每行运行一次,查找"Out"。

END{}语句用于在while循环结束后进行处理。这是你可以打印计数的地方。

或者不使用命令行:

my $lc1;
while ( readline ) {
    $lc1++ if /Out/; 
}    
print "$lc1n";

然后在命令行上运行:

$ perl count.pl LNP_Define.cfg

使用index:

0 <= index $_, 'Out' and $lc1++ while <$file>;

相关内容

  • 没有找到相关文章

最新更新