0

我无法让 sed 在我的 mac 终端上工作。我拥有的原始版本是 /usr/bin/sed 我想看看它是什么版本,所以我输入:

sed --version

我得到以下输出:

/usr/bin/sed: 非法选项 -- -- 用法:sed script [-Ealn] [-i extension] [file ...] sed [-Ealn] [-i extension] [-e script] ... [ -f 脚本文件] ... [文件 ...]

我的手册页适用于 sed 4.2,应该有一个 --version 选项

然后我通过从 gnu ftp http://ftp.gnu.org/gnu/sed/下载安装到 /usr/local/bin

然后我运行/usr/local/bin/sed--version 并且仍然得到与原始版本相同的输出。我完全糊涂了,谁能弄清楚我做错了什么?

编辑:似乎即使which sed给了我/usr/local/bin/sed命令sed仍在运行/usr/bin/sed,因此/usr/local/bin/sed没有被调用。如果我使用完整路径调用它会按预期工作。

我想现在的问题是为什么哪个 sed给了我/usr/local/bin/sed而当我键入sed时运行的命令是/usr/bin/sed

4

1 回答 1

2

您是错误语句显示的/usr/bin/sed不支持的 BSD sed 。--version它的手册页是/usr/share/man/man1/sed.1.gz,当我读到根本没有提到版本时,但是手册页上的日期是 2005 年 5 月 10 日。

我认为您的手册页不正确。很可能MANPATH是首先寻找其他地方。

至于您为什么/usr/local/bin/sed说 GNU sed 不尊重--version我不确定的原因。你能提供更多细节吗?

于 2013-03-09T17:10:38.970 回答