← Back to team overview

sslug-teknik team mailing list archive

Re: Stopping tail -f at a certain text string

 

Mads Hommelgaard <mho@xxxxx> writes:

> Jeg har brug for at "streame" en textfil imens den bliver skrevet af
> et program, men den skal stoppe når der er skrevet en bestemt
> textstreng. Det skal bruges i et shellscript.

Det kan man nok ikke med standard-tail. Der findes et modul til perl,
File::Tail, hvormed det let kan gøres. Det må være noget ala:

perl -MFile::Tail -e '$r=tie *FH,"File::Tail","/some/log/file";while(<FH>){print;last if /__END__/}'

Burde gøre det. '__END__' skal selvfølgelig erstattes af hvad du nu
ønsker at stoppe med. Du kan eventuelt også bytte om på print og last
if-kommandoerne hvis du ikke vil have den sidste linje skrevet ud.

-- 
 Peter Makholm     |        One thing you do is prevent good software from
 peter@xxxxxxxxxxx |      being written. Who can afford to do professional
 http://hacking.dk |                                     work for nothing?
                   |                                         -- Bill Gates


References