2009年11月30日星期一

[PerlChina] Re: about open() and print

你也可以使用 Tie::File, 想往前/往后取几行就取几行

http://search.cpan.org/~mjd/Tie-File-0.96/lib/Tie/File.pm

2009/12/1 Shu Cho <neatcho@gmail.com>
my $backwards = 2;
my @backwards = ();

while (<LOG>) {
  if (/error/) {
    print @backwards, $_;
    @backwards = ();
  }
  else {
    push @backwards, $_;
    shift @backwards if @backwards > $backwards;
  }
}

2009/12/1 cncruyff <cncruyff@gmail.com>

你好!
 
要是想要取上一行,或者上几行呢?
我知道gnu的grep有-B参数可以做到,perl如何实现?
 
 
2009-12-01

cncruyff

发件人: Fayland Lam
发送时间: 2009-11-30  20:56:48
收件人: perlchina
抄送:
主题: [PerlChina] Re: about open() and print
if (/\[error]|error/) {
print;
my $line = <LOG>;
print $line;
}
2009/11/30 earthminator <naziwh@163.com>:
> #!/usr/bin/perl
> use strict;
> use warnings;
> my $log_file = '/export/home/wanghao/1116/LOG.txt';
> open(LOG,"< $log_file") or die "Unable to open logfile:$!\n";
> while(<LOG>){
>    print  if /\[error]|error/;
> }
> close(LOG);
> 写了如上程序,能够成功调出LOG.txt中含有error的行,当是我想把含有error这一行的下一行也同时输出,请问该怎么弄?
>
>
> >
>
-- 
Fayland Lam // http://www.fayland.org/
 
 
 
 

 
  
 江苏省南京市鼓楼区南昌路40号长江科技园3F     Zip.210037          闻 琦
  3F Changjiang Science Park No.40 Nanchang Road Gulou District Nanjing, China        Wen  Qi
   Tel.025-83553301   Fax.025-83553310   
   www.c-platform.com     MP : 13809029763 技术支持部        平台维护工程师         
   E-mail: wenqi@c-platform.com Technical Support Dept.     Platform Maintenance Engineer 







--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: