【发布时间】:2014-12-27 21:42:12
【问题描述】:
以下带有 sed 和简单正则表达式的命令:
echo 'Atest Atest Atest' | sed -E 's/A|$/B/g'
产生输出:
Btest Btest B
请有人解释一下,为什么 sed 吃掉最后一个字?我希望输出是这样的:
Btest Btest BtestB
我使用与 Mac OS 捆绑在一起的 sed 版本(“BSD-flavour”)。
更新 与 GNU sed 相比,这种行为看起来像一个错误,所以我选择坚持后者。
【问题讨论】:
-
在
sed (GNU sed) 4.2.2上对我来说很好。 -
我的 sed (4.2.2) 返回你所期望的。它在windows中cygwin下的zsh中
-
为我工作。 sed 4.2.1 也可以按您的预期工作。