使用sed更改conf文件

Mat*_*att 4 linux sed

我正在尝试在我的nginx.conf文件中设置一些数值.我在Dockerfile中从RUN命令调用sed.

具体来说,我想改变目前的情况:

worker_processes 4;
Run Code Online (Sandbox Code Playgroud)

至:

worker_processes 1;
Run Code Online (Sandbox Code Playgroud)

正则表达式很强大,但$*(&(*Y很难做到).

我找到了这个,有效.

 sed -i '/access_log/s|/[^;]\+|/dev/stdout|' /etc/nginx/nginx.conf
Run Code Online (Sandbox Code Playgroud)

但修改为此,它没有.

 sed -i '/worker_processes/s|/[^;]\+|1|' /etc/nginx/nginx.conf
Run Code Online (Sandbox Code Playgroud)

如果有人能够解释第一次而不是第二次表达是如何工作的,以及如何使它工作,那就太好了.

Mat*_*att 7

这最终对我有用.

sed -i 's/^worker_processes.*/worker_processes 1;/' /etc/nginx/nginx.conf
Run Code Online (Sandbox Code Playgroud)