2013-07-17 66 views
0

基本上我想要統計包含單詞Out的行的數量。perl行計算包含特定文本的文件

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"; 

回答

0

使用index

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

個人而言,我會更舒服括號支撐指標參數,和前面的'0:

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

然後在命令行中運行'在比較 –

+0

choroba你能解釋一下這個線路到底在做什麼嗎?謝謝。 – dsaliba

+0

@dsaliba:它在每行中搜索'Out'。如果在某處發現它(索引返回該位置,即0或更多),則$ lc1遞增。 – choroba

1

命令行可能是你太潛在選項:

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

-n假定循環的所有代碼之前END
-e預計代碼由''包圍。

$ lc1 ++只有在以下if語句爲真時纔會計數。

if statement per line looking for「Out」。

END {}語句是用於處理的,而循環結束後。這裏是你可以打印計數的地方。

或不帶命令行:

$ perl count.pl LNP_Define.cfg 
相關問題