Hi. I can't be without thanking you – Eric Blake –, both for the relevance of your detailed explanation and the useful descriptions. Regards.

pe 18. tammik. 2019 klo 21.38 GNU bug Tracking System (help-debbugs@gnu.org) kirjoitti:
Your bug report

#34126: grep v. 3.1 – unexpected error message "grep: i.: No such file or directory"

which was filed against the grep package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 34126@debbugs.gnu.org.

--
34126: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=34126
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems



---------- Forwarded message ----------
From: Eric Blake <eblake@redhat.com>
To: Ricky Tigg <ricky.tigg@gmail.com>, 34126-done@debbugs.gnu.org
Cc: 
Bcc: 
Date: Fri, 18 Jan 2019 14:37:30 -0600
Subject: Re: bug#34126: grep v. 3.1 – unexpected error message "grep: i.: No such file or directory"
tag 34126 notabug
thanks

On 1/18/19 2:27 PM, Ricky Tigg wrote:
> OS: *Fedora*; Component: grep.x86_64  3.1-8.fc29
>
> Commands executed:
>
> $ dnf list|grep -Ei langpack | grep fi.
> glibc-langpack-fi.x86_64            2.28-26.fc29         @updates
> langpacks-fi.noarch                 1.0-13.fc29          @System
> (...)
>
> $ dnf list|grep -Ei langpack | grep fi. | grep "-fi."
> grep: i.: No such file or directory
>
> Using grep twice in the same command, the command's last grep is expected
> to produce targets, not an STDERR. Probably an issue.

Not an issue in grep, but in your attempt to use a pattern beginning
with - in a way that grep cannot distinguish from options.  That is, you
asked grep to use the -f option, which takes an argument, so it used
"i." as the argument for -f, and failed because there is no file named
'i.' in your current directory.  (That's true whether you write -fi. or
"-fi.", because the shell strips quoting before grep sees its argv[]).

You want to use either of these formulations instead:

grep -e -fi.
grep -- -fi.

where the "-e" option says to treat the next argv[] entry as a pattern,
even if it otherwise would look like an option, and then continue
finding further options; while the "--" argument says that no more
options are present, and that all further command line arguments are
treated according to their traditional positional usage).  The
difference becomes apparent in constructs like:

grep -e -fi. -i     # greps stdin case-insensitively for "-fi."
grep -- -fi. -i     # greps file ./-i case-sensitively for "-fi."

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




---------- Forwarded message ----------
From: Ricky Tigg <ricky.tigg@gmail.com>
To: bug-grep@gnu.org
Cc: 
Bcc: 
Date: Fri, 18 Jan 2019 21:27:02 +0100
Subject: grep v. 3.1 – unexpected error message "grep: i.: No such file or directory"
OS: Fedora; Component: grep.x86_64  3.1-8.fc29

Commands executed:

$ dnf list|grep -Ei langpack | grep fi.
glibc-langpack-fi.x86_64            2.28-26.fc29         @updates
langpacks-fi.noarch                 1.0-13.fc29          @System
(...)

$ dnf list|grep -Ei langpack | grep fi. | grep "-fi."
grep: i.: No such file or directory

Using grep twice in the same command, the command's last grep is expected to produce targets, not an STDERR. Probably an issue.