我正在编写一个Perl脚本来删除少于给定行数的文件。到目前为止我所拥有的是
my $cmd = join('','wc -l ', $file); #prints number of lines to command line
if (system($cmd) < 4)
{
my $rmcmd = join('','rm ',$file);
system($rmcmd);
}
其中$file
是文件的名称和位置。
答案 0 :(得分:3)
没有必要使用system
。 Perl完全能够计算行数:
sub count_lines {
open my $fh, '<', shift;
while(local $_ = <$fh>) {} # loop through all lines
return $.;
}
unlink $file if count_lines($file) < 4;
我假设您的最终目标是让它搜索目录树,删除行数少于 n 的文件。查看File::Find及其漂亮的代码生成器find2perl
以便为您处理该部分。