grep --include命令在OSX Zsh中不起作用

ice*_*lon 5 macos grep zsh

我正在关注如何在Linux上找到包含特定文本的所有文件的最佳答案在我的项目中搜索字符串.

这是我的命令 grep --include=*.rb -rnw . -e "pattern"

Zsh告诉我 zsh: no matches found: --include=*.rb

似乎grep不支持--include选项.

当我输入时grep --help,它返回

usage: grep [-abcDEFGHhIiJLlmnOoPqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
    [-e pattern] [-f file] [--binary-files=value] [--color=when]
    [--context[=num]] [--directories=action] [--label] [--line-buffered]
    [--null] [pattern] [file ...]
Run Code Online (Sandbox Code Playgroud)

不,--include这里

我的grep版本太旧了吗?或者我的命令有问题吗?

mkl*_*nt0 13

FreeBSD的/ OSX grep不支持的--include选项(参见man grep,很不幸的是,命令行帮助不会列出该选项),但你的问题是,选择的说法,*.rb不带引号的.

其结果是,这是你的shell,zsh试图路径名,扩大--include=*.rb了前部和失败,因为当前目录中,有名称匹配的任何文件--include=*.rb.
grep从来没有执行过.

由于您的意图是*.rb 未经修改grep,因此您必须引用:

grep --include='*.rb' -rnw . -e "pattern"     
Run Code Online (Sandbox Code Playgroud)