在Mac OS 10.10.3下,我通过键入以下命令安装gnu-sed:
brew install gnu-sed --default-names当我再次键入它时,我会得到这样的消息:
gnu-sed-4.2.2已安装
但是,即使在重新启动系统和重新启动终端之后,我仍然不能使用sed的GNU版本。例如:
echo a | sed ’s_A_X_i’返回:替换命令'i‘中的错误标志
我应该怎么做才能让GNU版本正常工作?下面是我的$PATH变量中的路径。
/Users/WN/-myUnix
/opt/local/bin
/opt/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/Applications/calibre.app/Contents/MacOS
/opt/ImageMagick/bin
/usr/texbin 如果我的问题很明显,我很抱歉,但我自己正在学习shell脚本,还不太了解UNIX程序是如何安装的。在Mac上使用兼容GNU的命令(在本例中是sed,但很快我也需要其他命令)而不会造成损坏或不必要的混乱,我将不胜感激。
发布于 2016-01-16 00:49:11
注(2019):
自2019年1月起,--with-default-names选项为removed,因此现在该选项不再可用。
安装时,如果要使用不带g前缀的sed,Homebrew会指导如何调整路径。
您已经在没有--with-default-names选项的情况下安装了gnu-sed。
它会安装sed to /usr/local/bin/
--with-default-names选项,并带有--with-default-names选项所以在你的案例中,你需要做的是:
$ brew uninstall gnu-sed
$ brew install gnu-sed --with-default-names如果需要,请更新路径...
$ echo $PATH | grep -q '/usr/local/bin'; [ $? -ne 0 ] && export PATH=/usr/local/bin:$PATH
$ echo a | sed 's_A_X_i'或者按照其他人的建议使用gsed。
发布于 2015-11-17 19:50:43
当您使用以下命令为Mac安装sed的GNU版本时:
$ brew install gnu-sed您使用的程序是gsed.
举个例子:
$ echo "Calimero is a little chicken" > test
$ cat test
Calimero is a little chicken
$ gsed -i "s/little/big/g" test
$ cat test
Calimero is a big chicken此外,为了称赞在Mac上使用GNU命令工具,这里有一篇很好的博客文章,可以从linux获得这些工具:
发布于 2019-05-06 22:33:07
$ brew install gnu-sed
$ export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"使用这两个命令,gnu-sed可以正常工作
https://stackoverflow.com/questions/30003570
复制相似问题