我无法在我的mac终端上进行sed工作。我的原始版本是/ usr / bin / sed 我想看看它是什么版本,所以我输入:
sed --version
我得到以下输出:
/ usr / bin / sed:非法选项 - - 用法:sed脚本[-Ealn] [-i 扩展名] [文件...] sed [-Ealn] [-i extension] [-e script] ... [ - f script_file] ... [file ...]
我的手册页是针对sed 4.2的,应该有一个--version选项
然后我从gnu ftp http://ftp.gnu.org/gnu/sed/
下载到/ usr / local / bin然后我运行/usr/local/bin/sed
--version并仍然获得与原始版本相同的输出。我完全糊涂了,有人能弄清楚我做错了吗?
编辑:似乎即使哪个sed 给了我 / usr / local / bin / sed 命令 sed 仍在运行< em> / usr / bin / sed ,因此未调用 / usr / local / bin / sed 。如果我以完整路径调用它,它会按预期工作。
我想问题是为什么哪个sed 给了我 / usr / local / bin / sed 但是当我输入 sed 是 / usr / bin / sed
答案 0 :(得分: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
我不确定。你能详细介绍一下吗?