write to a file after piping output from tail -f through to grep
-f, --follow[={name|descriptor}] output appended data as the file grows;
It scans the file as it grows. And it is a process with an interval. You can only interrupt it.
Use parameter:
-c, --bytes=K output the last K bytes; alternatively, use -c +K to output bytes starting with the Kth of each file
or
-n, --lines=K output the last K lines, instead of the last 10; or use -n +K to output lines starting with the Kth
EDIT: as bmk said:
grep --line-buffered
think it will help you