在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,但无法使用的主要内容,如果未能解决你的问题,请参考以下文章
在 OSX 上安装 rmagick gem 时出错 - 错误:无法构建 gem 原生扩展