在Perl中,如何在文件中搜索字符串然后打印它所在的行?

时间:2014-10-22 23:49:38

标签: string perl printing line match

这似乎有点补救。

我可以搜索文件,我可以打印一行,但对于我的生活,我无法弄清楚如何将两者放在一起。

1 个答案:

答案 0 :(得分:6)

每次读一行时只需递增一个计数器。

my $line;
while (<>) {
   ++$line;
   print "$line: $_" if /foo/;
}

那就是说,Perl已经为你做到了。

while (<>) {
   print "$.: $_" if /foo/;
}

如果您想支持多个文件,

while (<>) {
   print "$ARGV:$.: $_" if /foo/;
   close(ARGV) if eof;  # Reset line counter for each file.
}

eof上缺乏parens意义重大。)