此文件为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。