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.