Mark Richmond wrote: > > Hi: > > I have may huge log files where all I care about is the error at the end > how can seek backwards to find my pattern and snip off the end. > I'm looking for strings like. "======== Rebuilding "link" ========" which > only occur once when reading backwards but may times when reading forward.
here is one way of doing it with seek/tell. it reads the foo.txt file line by line from the end: #!/usr/bin/perl -w use strict; my @character; open(FH,"foo.txt") || die $!; seek(FH,(-s "foo.txt")-2,0); while(1){ read(FH,$b,1); if($b eq "\n"){ #-- one line. do your stuff here print join('',@character),"\n"; @character = (); }else{ unshift @character,$b; } #-- the following is for the first 2 lines from the top seek(FH,tell(FH)-2,0); next unless(tell(FH) == 1); read(FH,$b,1); unshift @character,$b; seek(FH,0,0); read(FH,$b,1); unshift @character,$b; print join('',@character),"\n"; last; } close(FH); __END__ i am sure you can make the above better. :-) david -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]