|
From: | GNU bug Tracking System |
Subject: | [debbugs-tracker] bug#25651: closed (Weird output of random files) |
Date: | Tue, 07 Feb 2017 22:32:03 +0000 |
Your message dated Tue, 7 Feb 2017 14:30:56 -0800 with message-id <address@hidden> and subject line Re: bug#25651: Weird output of random files has caused the debbugs.gnu.org bug report #25651, regarding Weird output of random files to be marked as done. (If you believe you have received this mail in error, please contact address@hidden) -- 25651: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=25651 GNU Bug Tracking System Contact address@hidden with problems
--- Begin Message ---Subject: Weird output of random files Date: Tue, 7 Feb 2017 21:24:32 +0100 User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0
Hello,
I could repeatedly reproduce an unexpected behaviour on several Linux systems (two installations of Arch Linux [newest state], a Debian [8.7] and a Ubuntu [16.4]).
I ran the following command - when I first ran it, it was accidentially
ps ax | grep -rehI wanted to grep for processes containing the string "-reh", but forgot the "-e" which was necessary due to the leading dash in the string.
On all systems, grep outputs hundreds of (not even matching) lines from files of my home directory, not at all related to the output of ps, which I piped into grep.
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"
It may be that all the lines ouput by grep contain "h".
Although expected to be identical, this command works as expected:
ps ax | grep -reh /dev/stdinKind regards,rexkogitans
--- End Message ---
--- Begin Message ---Subject: Re: bug#25651: Weird output of random files Date: Tue, 7 Feb 2017 14:30:56 -0800 User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 On 02/07/2017 12:24 PM, address@hidden 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 xyzThis 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.
--- End Message ---
[Prev in Thread] | Current Thread | [Next in Thread] |