7

I'm using the following command

tail -f /mydir/myfile |  grep "searchterm" >> outfile

Without the -f it works fine, but with the -f, which I need, nothing is written to the file. The following outputs to the console just fine

tail -f /mydir/myfile |  grep "searchterm"

What do I need to do in order to get my command to correctly write out to a file?

2 Answers 2

13

If you have GNU grep:

tail -f /mydir/myfile |  grep --line-buffered "searchterm" >> outfile

Which will write every line, for a performance penalty.

Alternatively, wait for more output. If you're killing the processes, just kill the tail process and the buffer should flush before grep exits.

1
  • I will try this out first thing Monday and report back. Thanks for the quick reply.
    – pyInTheSky
    Commented Feb 23, 2013 at 17:57
1

Is grep buffering the output perhaps, making it appear like there is none? Try:

tail -f /mydir/myfile | grep --line-buffered "searchterm" >> outfile

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .