我已经尝试在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
Run Code Online (Sandbox Code Playgroud)
这对我来说很奇怪,因为文档暗示了这一点 The command has been installed with the prefix "g".
我已经看过以下帖子,但没有一个解决方案适合我.更新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`
Run Code Online (Sandbox Code Playgroud)
新:
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
Run Code Online (Sandbox Code Playgroud)
这一次,似乎有些不同.ggrep终于安装好了!我认为unlink/解决了link一些问题.如何设置ggrep为默认值?用alias?
bfo*_*ine 14
要使GNU grep成为默认安装它--with-default-names:
$ brew install grep --with-default-names
Run Code Online (Sandbox Code Playgroud)
如果您已安装使用reinstall而不是install.
确保/usr/local/bin(GNU grep 的位置)在您之前 /usr/bin(BSD grep的位置)$PATH; 这似乎就是这种情况.
您可能必须在之后启动新的shell会话,因为Bash会缓存当前会话的二进制文件路径.这意味着您第一次使用grep它时将根据您的身份确定使用哪个二进制文件$PATH并对其进行缓存.下次它将使用缓存的值,因此$PATH在重新加载shell之前更改您的内容不会改变任何内容.
上述答案正式过时。
从 Homebrew 版本 2.0.0 开始,该--with-default-names标志不再可用。
来自官方文档
--with-default-names 不再受支持。它现在安装到自己的目录中,您需要调整 PATH 才能使用它。
您需要做的是将此命令添加到您的shell
PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4090 次 |
| 最近记录: |