【发布时间】:2010-11-16 15:56:35
【问题描述】:
现在根据所有文献
echo 1234abcd|sed "s|[0-9]\+|#|g"
应该输出#abcd。和
echo abcd|sed "s|[0-9]\+|#|g"
应该输出 abcd。
但在 OS X 10.4.11 上,第一个表达式输出 1234abcd。使用 * 而不是 + 对第一个示例有效,但在第二个示例中失败,输出 #abcd,因为 [0-9] 模式匹配零次。
+ 运算符在 OS X 的正则表达式中不起作用吗?有其他选择吗?
谢谢
【问题讨论】:
-
sed 不会“返回 abcd”。它返回 0,并输出“abcd”。程序的输出不是它的返回值。
-
您说得非常正确,先生。我现在正在修复。