首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >grep始终返回"grep:指定的冲突匹配“。

grep始终返回"grep:指定的冲突匹配“。
EN

Stack Overflow用户
提问于 2018-02-26 23:29:33
回答 4查看 10.1K关注 0票数 13

使用默认终端在MacOSX 10.13.3上运行。当我尝试使用grep命令时,我会接收到它作为输出。不管发生什么。我已经更改了目录、选项,甚至grep本身也会返回相同的内容。它返回:

代码语言:javascript
运行
复制
grep: conflicting matchers specified

最近,我用Homebrew安装了一些新的命令行工具,并且相信我在这个过程中运行了brew install grep,以便在我的计算机上获得正式的linux版本。这是我所能想到的唯一可能导致这一切的变化。

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

命令

代码语言:javascript
运行
复制
grep -l 'this' *.txt

跟踪

代码语言:javascript
运行
复制
+ 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]
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-02-26 23:38:28

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

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

还不清楚为什么grep会以grep -GFh ....的形式执行,但最有可能的可能(如评论中所建议的)可能是别名。您可以使用alias grep (它将打印grep是否为别名)或更通用的type grep (例如,如果grep被定义为一个函数,它会告诉您)来验证这一点。

票数 9
EN

Stack Overflow用户

发布于 2018-02-27 00:01:42

我在我的grep中将~./bashrc设置为别名。在评论中,聪明的人让我意识到了这一点,他们注意到grep被调用时已经设置了选项。我删除了grep的别名,一切都很好。

票数 3
EN

Stack Overflow用户

发布于 2020-01-13 18:05:33

我有“堆叠”的别名:

代码语言:javascript
运行
复制
alias grep='grep --color=auto -i --perl-regexp'
alias fgrep='grep -Fi --color=auto'

将第二个反斜杠改为\grep (前导反斜杠)使它们不堆栈。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48998775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档