On 02/07/2017 12:24 PM, rexkogit...@gmx.at 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.




Reply via email to