如何使用GNU sed的在Mac OS 10.10+,“酿造安装--default-名”不再支持

问题描述 投票:70回答:7

在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,而不会造成损坏或不必要的混乱,将不胜感激。

macos bash sed homebrew gnu
7个回答
101
投票

注(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正如其他建议。


40
投票

当您安装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上得到的工具:

Install and use GNU command line tools on Mac OS/OS X


17
投票

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

5
投票

如果您需要使用GNU-sed的命令与正常的名字,你可以从你的.bashrc添加一个“gnubin”目录添加到PATH。只需在您的bash或终端使用以下命令。

/usr/local/bin/

2
投票

$冲泡安装GNU-SID $出口PATH = “在/ usr /本地的/ opt / GNU-SED / libexec目录/ gnubin:$ PATH”

有了这两个命令的GNU sed的正常工作


1
投票

/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更高

我还创建了一个名为sedgsed$PATH手册页的符号链接越高如此sed.1将访问,而不是默认gsed.1手册页的手册页$MANPATH


-1
投票

如果安装man,你会得到SED和一堆事情等GNU版本,如焦油,日期,等等,这些都是安装在/ usr / local / bin目录,并添加前缀“G”的。所以在安装后,如果您想要的SED的GNU版本,您可以输入gsed代替。伟大的作品。

© www.soinside.com 2019 - 2024. All rights reserved.