bug-grep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Possible bug with parameter -m


From: Benno Schulenberg
Subject: Re: Possible bug with parameter -m
Date: Thu, 07 Jun 2007 22:07:31 +0200
User-agent: KMail/1.9.7

Stefan Sassenberg wrote:
> I have a file named "file" containing three lines
> line1
> line2
> line3
>
> When I execute the following line in my bash
> "while true; do grep ^ -m 1 ; done <file"
> I expect the output
> line1
> line2
> line3
>
> after three loop runs, one for every line found in the file.

That would indeed be the correct output.  From the man page: "If  
[...] NUM  matching lines are output, grep ensures that the 
standard input is positioned to just after the last matching line 
before exiting [...]. This enables a calling process to resume a 
search."  The endless repetition of line2 in your example is a bug 
in grep.

It gets weirder when the lines have different lengths:

$ cat file
line1
xxxx
zz
$ while true; do grep ^ -m1 ; done <file
line1
xxxx

ine1

ine1
[...]

$ cat file
line1
xxx
zz
$ while true; do grep ^ -m1 ; done <file
line1
xxx
1
ne1
1
ne1
[...]

$ cat file
line1
xx
zz
$ while true; do grep ^ -m1 ; done <file
line1
xx
e1
e1
e1
e1
[...]

> I'm not sure what happened, but recently that doesn't work
> anymore.

It did work in the past?  With what version was that?

Benno




reply via email to

[Prev in Thread] Current Thread [Next in Thread]