在OSX上安装了GNU grep,但无法使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在OSX上安装了GNU grep,但无法使用相关的知识,希望对你有一定的参考价值。

我已经尝试在OSX上安装GNU grep,它似乎已安装,但我无法使用它..我已经使用自制程序,Macports目前有一些问题,所以我不能使用它。

要安装:brew tap homebrew/dupes; brew install grep

返回:Warning: homebrew/dupes already tapped! Warning: homebrew/dupes/grep-2.21 already installed

符号链接似乎适用于/ usr / local / bin / ggrep。当我添加别名alias grep="ggrep"并做grep --version时,我得到-bash: ggrep: command not found。这是真的,因为文件夹中没有ggrep。我已尝试安装有和没有--with-default-names

文件夹/usr/local/Cellar/grep/2.21/bin/包含以下内容:

-r-xr-xr-x 1 Wes admin 158 Oct 14 09:27 egrep
-r-xr-xr-x 1 Wes admin 158 Oct 14 09:27 fgrep

这对我来说很奇怪,因为文档暗示The command has been installed with the prefix "g".

我已经看过以下帖子,但没有一个解决方案适合我。 Updating grep for Mac OS 10.7

有没有人有任何解决方案?我真的想用GNU grep。

brew unlink grep && brew link grep -v的输出:

Unlinking /usr/local/Cellar/grep/2.21...
6 symlinks removed
Linking /usr/local/Cellar/grep/2.21...
ln -s ../Cellar/grep/2.21/bin/egrep egrep
ln -s ../Cellar/grep/2.21/bin/fgrep fgrep
ln -s ../../Cellar/grep/2.21/share/info/grep.info grep.info info /usr/local/share/info/grep.info
ln -s ../../../Cellar/grep/2.21/share/man/man1/egrep.1 egrep.1
ln -s ../../../Cellar/grep/2.21/share/man/man1/fgrep.1 fgrep.1
ln -s ../../../Cellar/grep/2.21/share/man/man1/grep.1 grep.1
6 symlinks created`

新:brew uninstall grep; brew install grep

$ which -a grep
/usr/bin/grep

$ which -a ggrep
/usr/local/bin/ggrep

$ echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin

这一次,似乎有些不同。 ggrep终于安装好了!我认为unlink / link解决了一些问题。如何将ggrep设置为默认值?与alias

答案

要使GNU grep成为默认值,请使用--with-default-names安装它:

$ brew install grep --with-default-names

如果你已经安装了它,请使用reinstall而不是install

确保/usr/local/bin(GNU grep的位置)在/usr/bin之前的$PATH(BSD grep的位置)之前;这似乎就是这种情况。

您可能必须在之后启动新的shell会话,因为Bash会缓存当前会话的二进制文件路径。这意味着第一次使用grep时,它将根据你的$PATH确定它将使用哪个二进制文件并缓存它。下次它将使用缓存的值,因此在重新加载shell之前,更改$PATH不会改变任何内容。

另一答案

上面的答案正式过时了。

从Homebrew版本2.0.0开始, - with-default-names标志不再可用。

来自官方文件

- 不再支持--with-default-names。它现在已安装到自己的目录中,您需要调整PATH才能使用它。

您需要做的是将此命令添加到您的shell

PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"

以上是关于在OSX上安装了GNU grep,但无法使用的主要内容,如果未能解决你的问题,请参考以下文章

无法导入第三方包

代码块无法在 mac OSX 上编译

在 OSX 上安装 rmagick gem 时出错 - 错误:无法构建 gem 原生扩展

Bundle 无法在 Mac OSX 10.7 上安装 RMagick gem

无法在 OSX 中使用 sed 在模式后添加一行文本

缺少在 Mac OSX Lion/make 上安装 Qt