grep始终返回“ grep:指定了冲突的匹配器”

Jos*_*ley 5 bash grep

使用默认终端在MacOSX 10.13.3上运行。当我尝试使用grep命令时,我将其作为输出接收。无论。我更改了目录,选项,甚至grep单独返回了相同的内容。它返回:

grep: conflicting matchers specified
Run Code Online (Sandbox Code Playgroud)

最近,我在Homebrew上安装了一些新的命令行工具,并相信我brew install grep正在尝试在计算机上获取正式的linux版本。这是我能想到的唯一改变。

这是痕迹。如您所见,grep命令成功运行,但是输出是错误消息而不是结果:

命令

grep -l 'this' *.txt
Run Code Online (Sandbox Code Playgroud)

跟踪

+ grep -GFh -l this ga_users.txt montecitovt_apache_logs-2018-02-09_21-58-40.txt tag_manager_more_than_one_ga_account.txt urls_in_sitemap.txt
grep: conflicting matchers specified
++ update_terminal_cwd
++ local url_path=
++ local i ch hexch LC_CTYPE=C LC_ALL=

...

[REDACTED]
Run Code Online (Sandbox Code Playgroud)

Kyl*_*and 6

正如您在跟踪的第一行中看到的那样,第一个参数grep接收为-GFh

-G指定正则表达式,而-F指定固定字符串。这些当然是不兼容的。

目前尚不清楚为什么grep要执行as grep -GFh ....,但是最有可能的可能性(如注释中所建议)可能是别名。您可以使用进行验证alias grep,该命令将显示是否grep为别名,或打印type grep为更通用的(例如,如果grep定义为函数,它将告诉您)。