Re: bsdgrep does not work with tail -f | grep combination

From: Alexey Shuvaev <shuvaev_at_physik.uni-wuerzburg.de>
Date: Wed, 4 Aug 2010 19:02:55 +0200
On Wed, Aug 04, 2010 at 06:28:10PM +0200, Lars Engels wrote:
> On Wed, Aug 04, 2010 at 10:51:08AM -0400, Alexandre Sunny Kovalenko wrote:
> > On Tue, 2010-08-03 at 20:21 +0200, Gabor Kovesdan wrote:
> > > Em 2010.08.03. 19:25, poyopoyo_at_puripuri.plala.or.jp escreveu:
> > > > Hi,
> > > >
> > > > It seems bsdgrep does not work when piped from tail -f.
> > > > I'm running r210728.
> > > >
> > > > term0$ jot 10>  /tmp/1
> > > > term0$ tail -f /tmp/1 | grep 0
> > > > [no output]
> > > >
> > > > otherterm$ jot 10>>  /tmp/1
> > > > [no output to term0]
> > > >
> > > > =====
> > > >
> > > > with GNU grep:
> > > >
> > > > term0$ tail -f /tmp/1 | gnugrep 0
> > > > 10
> > > > otherterm$ jot 10>>  /tmp/1
> > > > [on term0]
> > > > 10
> > > > 10
> > > >    
> > > I've checked on 8.0 and GNU grep doesn't output anything either for me. 
> > > If you use tail -f, you will enter more lines and end it with EOF, won't 
> > > you? And then BSD grep will process the input and print out matches. I 
> > > don't think it's bad behaviour in itself but if you can explain why you 
> > > think it's bad I'm willing to change it.
> > > 
> > I am not sure it is specific to the GNU grep -- below is the example
> > from AIX 5.3:
> 
> [...]
> 
> Same on Solaris, so this is not a GNU feature.
>
Just to clarify things, bsdgrep of course works with tail -f,
the data just sits in its buffer:

~> jot 10 > test
~> tail -f test | grep 0

[on another terminal]

~> jot 10 >> test

[nothing happens on original terminal]

~> jot 4000 >> test

[on the original terminal]

10
10
10
20
30
40
50
60
70
80
90
100
101
102
103
[snip]
3950
3960
3970
3980
3990
4000

Alexey.
Received on Wed Aug 04 2010 - 15:29:37 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:05 UTC