我想问一下如何在Perl中计算行数。
示例:
档案a.txt
ikhsan
faqih
kamal
jundi
iqbal
文件b.txt
ikram
izzul
ibnu
qoyyim
问题是如何计算Perl中2文件中的所有行。
如果我只想阅读一个文件,我的代码是:
这是我的data.txt
a
b
c
d
我的代码
open (FILE, "data.txt") or die "Can't open file: $!";
my ($lines) = (0);
while (<FILE>) {
$lines++;
print $lines;
如果我执行:perl countlines.pl
C:\perl> perl countlines.pl
4
C:\perl>
我的问题是如何计算2个文件中的所有行?
答案 0 :(得分:2)
这适用于任意数量的文件
perl -lne 'END { print $. }' a.txt b.txt
工作原理
使用-ln标志将perl编译为脚本,如下所示:
BEGIN { $/ = "\n"; $\ = "\n"; }
LINE: while (defined($_ = <ARGV>)) {
chomp $_;
sub END {
print $.;
}
;
}
这将循环播放给定文件列表中的所有文件并且什么都不做!
但是有一个特殊的perl变量$.
,它是读取行数的计数器
因此,在脚本结束时,会打印出来,显示文件中的总行数
答案 1 :(得分:1)
我建议使用<>
的自动表单:
$count++ while <>;
print $count;
用法:
perl countlines.pl a.txt b.txt
如果您想手动完成,只需重复您的过程:
my ($lines) = (0);
open (FILEA, "a.txt") or die "Can't open file: $!";
while (<FILEA>) { $lines++; }
open (FILEB, "b.txt") or die "Can't open file: $!";
while (<FILEB>) { $lines++; }