5

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

コメント行(スラッシュをエスケープ)をコメントなしの行に置き換えると思いました。しかし、それを実行すると、次のメッセージが返され、ファイルに結果はありません。

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

この種のスクリプトについては理解が深まりません。どうすればこのタスクを達成できますか?

4

4 に答える 4

6

コンマを使用できます。

sed -i 's,#LoadModule php5_module libexec/apache2/libphp5.so,LoadModule php5_module libexec/apache2/libphp5.so,g'

また

sed -i 's,#\(LoadModule php5_module libexec/apache2/libphp5.so\),\1,g' foo.txt
于 2012-07-26T07:20:34.297 に答える
1

最初を削除し/ます:

sed -i 's/...'
于 2012-07-26T07:18:52.110 に答える
1

さらに別の方法があります:

sudo sed -i '/#LoadModule php5_module libexec\/apache2\/libphp5.so/s/#//' httpd.conf
于 2012-07-26T08:00:02.903 に答える
0

正しい構文は

's/#LoadModule php5_module libexec\/apache2\/libphp5.so/LoadModule php5_module libexec\/apache2\/libphp5.so/' 

スラッシュ / は、スラッシュ dot のエスケープを避けるために、別の文字 (- など) で変更できます。パターン (左側の部分) でエスケープする必要があります。それ以外の場合は、任意の文字を意味します

's-#LoadModule php5_module libexec/apache2/libphp5\.so-LoadModule php5_module libexec/apache2/libphp5.so-'
于 2012-07-26T07:23:51.097 に答える