我最近发现这个简单的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: /'
sed
MacOS 上的 BSD 变体具有与 GNU 对应的不同选项。不过man sed
明明MacOS版本sed
支持标签,为什么会出现这个错误,最重要的是如何解决呢?