Sed命令适用于Linux,但不适用于OS X.

Ivi*_*ica 14 linux macos sed

我在Linux上使用这个sed命令来修补一个文件,它运行正常:

sed -i -r "s/(\tpublic function __call.*)/\1\n\t\treturn null;/" rb.php
Run Code Online (Sandbox Code Playgroud)

但是当我在OS X上尝试此命令时,我收到一个错误:

sed: 1: "s/(\tpublic function __ ...": \1 not defined in the RE
Run Code Online (Sandbox Code Playgroud)

那么,任何人都可以帮我制作适用于Linux和OS X的命令吗?

顺便说一句,我试过命令:

sed -i '' -r "s/(\tpublic function __call.*)/\1\n\t\treturn null;/" rb.php
Run Code Online (Sandbox Code Playgroud)

但它在Linux上不起作用.

Mic*_*ber 28

对于Mac OS X sed,请使用-E而不是-r获取ERE.此外,GNU扩展是不存在的,所以你需要文字字符,而不是\t\n元字符.

或者只是安装GNU sed.