在Mac OS 10.10.3,我安装了GNU-SID通过键入:
brew install gnu-sed --default-names
当我再次键入它,我得到的消息:
GNU-SID-4.2.2已经安装
然而,即使重新启动系统并重新启动终端后,我仍然无法使用的SED GNU版本。例如:
echo a | sed ’s_A_X_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程序的安装方式不太明白呢。任何帮助使用GNU兼容的命令(在这种情况下sed的,但很快我需要其他人也)在我的Mac,而不会造成损坏或不必要的混乱,将不胜感激。
注(2019):
该--with-default-names
选项removed自2019一月,所以现在选项不可用了。
安装时,自制指示如何适应的道路,如果一个人想不g
前缀使用SED。
你已经拥有了GNU-SID没有--with-default-names
选项安装。
--with-default-names
选项它安装到sed
/usr/local/bin/
gsed
所以你的情况,你得什么做的是:
$ 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
正如其他建议。
当您安装GNU版本sed
使用的Mac OS X:
$ 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 OS X GNU命令工具,这里有一个很好的博客文章在Linux上得到的工具:
该sed
附带OS X是/usr/bin
。
这qazxsw POI安装qazxsw POI是qazxsw POI。
如果你喜欢使用sed
一个,你有两个选择:
选项1
每次你想使用homebrew
/usr/local/bin
,类型
homebrew
或者,优选
选项2
向前迈进homebrew
之前(即)sed
在PATH中的登录配置,这样
/usr/local/bin/sed
如果您需要使用GNU-sed的命令与正常的名字,你可以从你的.bashrc添加一个“gnubin”目录添加到PATH。只需在您的bash或终端使用以下命令。
/usr/local/bin/
$冲泡安装GNU-SID $出口PATH = “在/ usr /本地的/ opt / GNU-SED / libexec目录/ gnubin:$ PATH”
有了这两个命令的GNU sed的正常工作
/usr/bin
并没有为我工作在Mac OS X 10.14.2所以我创建了一个符号链接名为 export PATH=/usr/local/bin:<other places>
在export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"
到--with-default-names
更高
我还创建了一个名为sed
在gsed
的$PATH
手册页的符号链接越高如此sed.1
将访问,而不是默认gsed.1
手册页的手册页$MANPATH
如果安装man
,你会得到SED和一堆事情等GNU版本,如焦油,日期,等等,这些都是安装在/ usr / local / bin目录,并添加前缀“G”的。所以在安装后,如果您想要的SED的GNU版本,您可以输入gsed
代替。伟大的作品。