use*_*201 84 macos bash homebrew gnu sed
在Mac OS 10.10.3下,我通过输入以下命令安装了gnu-sed:
brew install gnu-sed --default-names
Run Code Online (Sandbox Code Playgroud)
当我再次输入时,我收到消息:
已经安装了gnu-sed-4.2.2
但是,即使重新启动系统并重新启动终端,我仍然无法使用sed的GNU版本.例如:
echo a | sed ’s_A_X_i’
Run Code Online (Sandbox Code Playgroud)
返回:替换命令'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
Run Code Online (Sandbox Code Playgroud)
如果我的问题看起来很明显,我很抱歉,但我自己学习shell脚本,并且还不太了解UNIX程序的安装方式.任何帮助使用GNU兼容命令(在这种情况下sed,但很快我也需要其他人)在我的Mac上不会造成损害或不必要的混乱将非常感激.
Kas*_*yap 107
注(2019):
该--with-default-names选项自2019年1月起被删除,因此现在该选项不再可用.
安装时,如果想要使用没有g前缀的sed,Homebrew会指示如何调整路径.
您已经安装了没有--with-default-names选项的gnu-sed .
--with-default-names选项安装sed到/usr/local/bin/gsed所以在你的情况下你要做的是:
$ brew uninstall gnu-sed
$ brew install gnu-sed --with-default-names
Run Code Online (Sandbox Code Playgroud)
如果需要更新路径......
$ echo $PATH | grep -q '/usr/local/bin'; [ $? -ne 0 ] && export PATH=/usr/local/bin:$PATH
$ echo a | sed 's_A_X_i'
Run Code Online (Sandbox Code Playgroud)
或使用gsed其他建议.
anq*_*egi 44
使用以下命令安装sed适用于Mac OS X 的GNU版本时:
$ brew install gnu-sed
Run Code Online (Sandbox Code Playgroud)
你使用的程序是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
Run Code Online (Sandbox Code Playgroud)
另外,为了补充在Mac OS X上使用GNU命令工具,这里有一篇很好的博客文章来从linux获取工具:
小智 21
$ brew install gnu-sed
$ export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"
Run Code Online (Sandbox Code Playgroud)
使用这两个命令 gnu-sed 可以正常工作
Mar*_*ell 17
该sed附带OS X中/usr/bin.
在sed这homebrew安装在/usr/local/bin.
如果您更喜欢使用homebrew它,您有两种选择:
选项1
每次要使用时homebrew sed,请键入
/usr/local/bin/sed
Run Code Online (Sandbox Code Playgroud)
或者,最好是
选项2
在您的登录配置文件中/usr/local/bin/向前移动(即之前)/usr/bin,就像这样
export PATH=/usr/local/bin:<other places>
Run Code Online (Sandbox Code Playgroud)
如果需要使用带有普通名称的gnu-sed命令,则可以从bashrc将“ gnubin”目录添加到PATH中。只需在bash或终端中使用以下命令即可。
export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64561 次 |
| 最近记录: |