【发布时间】:2012-08-29 14:52:19
【问题描述】:
我最近发现这个简单的sed 表达式在 Linux 或 Cygwin 下运行良好,但在 Mac 上失败并出现“未定义标签”错误:
$ sed '/SUCCESSFUL/d ; /\[java\]/!b label; s/\s\+\[java\]//; /^\s*$$/d; /Compiling/!d; :label /^\s*$$/d; s/^/monitor: /'
sed: 1: "/SUCCESSFUL/d ; /\[java ...": undefined label 'label; s/\s\+\[java\]//; /^\s*$$/d; /Compiling/!d; :label /^\s*$$/d; s/^/monitor: /'
MacOS 上的sed 是一个 BSD 变体,与 GNU 对应的选项不同。但是man sed明确表示sed的MacOS版本支持标签,那么为什么会出现这个错误,最重要的是如何解决呢?
【问题讨论】: