SED不能与-i和-E一起使用

时间:2017-05-15 14:21:01

标签: bash shell sed

此文件为httpd.conf

some_config_1
some_config_2
CustomLog /app-test.log combined
ErrorLog /error-test.log
some_config_5
some_config_6
some_config_7

如果我跑:

sed -E "s|(CustomLog ).*|\1${LOG_PATH} combined|" httpd.conf

[...]它打印出我想要的内容,但如果我使用-i

sed -iE "s|(CustomLog ).*|\1${LOG_PATH} combined|" httpd.conf

[...]我收到此错误:

sed: 1: "s|(CustomLog ).*|\1/app ...": \1 not defined in the RE

如果我用括号表示它是有效的,但-E是为了避免为RegEx做这个,而且还有一些其他样本也不起作用。

在我的用例中,我需要更新此文件,因此我需要使用-i选项。

注意:虽然没有传播,-E在Linux,AFAIK上作为-r使用。

有人知道这里发生了什么吗?

我在使用MacOS 10.12.4。

0 个答案:

没有答案