sed コマンドは外部 ifmodule に式を書き込みます。

sed コマンドは外部 ifmodule に式を書き込みます。

私の設定ファイルにはこれがあります

<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

index.phpに変えたいindex.temp

私はこれを作った

sed -i -e '/s/index.php/index.temp/‘ dir.conf

これは作る、

<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
ndex.php/index.temp/

答え1

コマンドs///の前に付いていると誤解を招く可能性/がありますsed。また、終了する一重引用符が一般的な一重引用符ではないように見えますが(そうではありません')、この質問に問題がある可能性があります。

文字列のすべてのインスタンスをファイルのすべてのインスタンスindex.phpに変更するには、次のようにします。index.tempdir.conf

sed -i 's/index\.php/index.temp/g' dir.conf

パターンの点は正規表現で特別なので、エスケープする必要があります(代わりに使用することもできます[.]\.。また、これは-i「所定の位置で編集」を使用していることに注意してください。通常、持ち運びが簡単ではありません。

またはmyindex.phpに変更したくない場合は、(または両方の代わりに)を使用して単語の境界を一致させます。myindex.tempindex.php3index.temp3\<\>\b

sed -i 's/\<index\.php\>/index.temp/g' dir.conf

関連情報