是否有不支持“-E”的标准版本的“sed”?

Wil*_*ard 7 bsd sed gnu posix

在 BSD sed 上,-E是“扩展正则表达式”标志。在 GNU sed 上,文档指出这-r是扩展的正则表达式标志,但-E开关也能正常工作(尽管在我的研究中没有记录)。

我记得读过-E将在下一版 POSIX 规范中指定的某个地方,但我找不到我在哪里读到的。

(这是真的吗?是否有权威参考,或者这里的用户权威?)

究竟有多便携-E为开关sed

是否有标准(即POSIX兼容)的版本sed-E是不支持?(哪个?)

为什么-E没有为 GNU sed 记录该标志?

Eri*_*ouf 8

GNU 首先添加了未记录的支持,-E只是为了与 BSD 语法兼容,源代码包括注释

/* 未记录,为了与 BSD sed 兼容。*/

但是在 2013 年,在此提交中删除了日志消息

修改文档以注意 sed "-E" 选项,现在在 POSIX 中,用于 ERE。

并且提交在此页面上引用了 POSIX 的缺陷跟踪器,标记为已接受将-E标志添加到sed参数

不过,它似乎还没有进入最新的 POSIX 规范sed 特定部分),但我想它即将到来。


Tho*_*key 6

要查看的地方是经过认证的系统:

OSX拥有它,尽管它是 BSD 优先还是 GNU 优先并不是问题的一部分。

  • 鉴于我在 GNU 源代码中找到的评论,我认为可以安全地假设 BSD 首先做到了 (2认同)