ファイル名の大文字と小文字を無視しないため、大文字と小文字を無視するためのgrep文書が間違っていますか?

ファイル名の大文字と小文字を無視しないため、大文字と小文字を無視するためのgrep文書が間違っていますか?

これマニュアルページgrep読む

-i--ignore-case

      2つの間の大文字と小文字の違いを無視してください模様と入力ファイル。 (-iPOSIXによって指定されます。 )

ただし、ファイル名の大文字と小文字を変更しても機能しません。

$ touch WHATEVER
$ grep -i pattern whatever
grep: whatever: No such file or directory

私は何を逃したことがありませんか?

ベストアンサー1

この混乱した作品は、最新バージョンのGNU grepで次のように変更されました。

-i-ignore-case 大文字と小文字が異なる文字が互いに一致するように、大文字と小文字の違いを無視します。

このコミットを参照してください。http://git.savannah.gnu.org/cgit/grep.git/commit/?id=e1ca01be48cb64e5eaa6b5b29910e7eea1719f91

 .BR \-i ", " \-\^\-ignore\-case
-Ignore case distinctions in both the
-.I PATTERN
-and the input files.
+Ignore case distinctions, so that characters that differ only in case
+match each other.

たとえば、以前の式がどこから来たかについて、一部のプログラムには、パターンにless(1)大文字を使用すると、特定の検索に対して大文字と小文字を区別する(フラグオーバーライド-i)機能を持つ(バグ)機能があります。この文書の作品の作成者は、おそらく多くの人がこのような振る舞いを期待し、直接警告を発行するのではなく、非公式の文を好んだと思ったでしょう。 FWIW、これらの機能はed(1)、、grep(1)など、vi(1)またはperl(1)APIregex(3)の一部ではありませんでしたpcre(3)

emacs[1] これはデフォルト値であるという事実に由来するようです。 (カスタマイズ可能な)search-upper-case変数をnil

おすすめ記事