这在任何 Linux 上都能很好地工作:
$ echo foo bar | sed -n '/foo/{/bar/{;p;}}'
foo bar
Run Code Online (Sandbox Code Playgroud)
但在 OSX 的古老 BSD 变体上失败:
? echo foo bar | sed -n '/foo/{/bar/{;p;}}'
sed: 1: "/foo/{/bar/{;p;}}": extra characters at the end of } command
Run Code Online (Sandbox Code Playgroud)
我错过了一些神奇的咒语吗?有没有办法以可移植的方式编写它?
我不想不得不恢复到grep | grep | grep命令管道。
更新:这里的代表很低,所以不能投票,但感谢所有回复者的深思熟虑的建议。