使用sed取消注释httpd.conf中的一行

zak*_*ain 5 apache bash shell config zsh

我正在尝试编写一个小shell脚本来完成在新安装的Mountain Lion上启用apache和php所需的步骤.我坚持的步骤是进入/etc/apache2/httpd.conf并取消注释这一行:#LoadModule php5_module libexec/apache2/libphp5.so

从目前为止谷歌搜索我认为sed是这样做的方式,但我不能正确的语法.我试过这个:

cd /etc/apache2
sudo sed -i '/s/#LoadModule php5_module libexec\/apache2\/libphp5.so/LoadModule php5_module libexec\/apache2\/libphp5.so' httpd.conf
Run Code Online (Sandbox Code Playgroud)

我认为会用未注释的行替换注释行(转义斜杠).但是当我运行它时,我只是得到以下消息,并且没有结果文件:

sed: 1: "httpd.conf": extra characters at the end of h command

这种类型的脚本我不在这里,我该如何完成这项任务?

sli*_*nov 6

你可以用逗号.

sed -i 's,#LoadModule php5_module libexec/apache2/libphp5.so,LoadModule php5_module libexec/apache2/libphp5.so,g'
Run Code Online (Sandbox Code Playgroud)

要么

sed -i 's,#\(LoadModule php5_module libexec/apache2/libphp5.so\),\1,g' foo.txt
Run Code Online (Sandbox Code Playgroud)


小智 1

删除第一个/

sed -i 's/...'
Run Code Online (Sandbox Code Playgroud)