Subject: Re: bug#25651: Weird output of random files
From: Paul Eggert <[email-masked]>
To: "[email-masked]" <[email-masked]>, [email-masked]
Date: Tue, 7 Feb 2017 14:30:56 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

On 02/07/2017 12:24 PM, [email-masked] wrote:
> Maybe, the command line is interpreted as:
>
>    * r ... search files recursively in directories. Note, that input is
>    read from stdin here.
>
>    * e ... use the following pattern
>
>    * h ... this is the pattern expected by "e"

Yes, that's the interpretation that 'grep' uses, except that it reads 
input from ".", not from stdin. That is, 'grep -r PAT' is equivalen to 
'grep -r PAT .'. This is for convenience: as it does not make sense to 
use -r on an input stream, the default input is '.' instead of '-' when 
-r is used.

grep cannot "know" that the user wanted it to read from stdin, for the 
same reason that it does not "know" that the user wanted it to read from 
stdin here:

    ps ax | grep 0:00 xyz

This causes 'grep' to read from the file 'xyz', instead of the desired 
behavior of looking for the pattern '0:00 xyz' in the 'ps ax' output. 
The 'ps ax' output is ignored.