我的配置文件有这个
<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///
命令以 a 为前缀/
,这会导致sed
误解。它看起来也好像终止单引号不是普通的单引号(‘
而不是'
),但这可能只是这个问题的一个问题。
要将字符串的所有实例更改index.php
为index.temp
某个文件中的所有实例dir.conf
,请使用
sed -i 's/index\.php/index.temp/g' dir.conf
模式中的点需要转义,因为它在正则表达式中很特殊(您也可以使用[.]
代替\.
)。另请注意,这是使用-i
“就地编辑”,即一般不便于携带。
为了确保您不会更改myindex.php
为myindex.temp
或index.php3
into index.temp3
,请使用\<
and \>
(或\b
代替两者)来匹配单词边界:
sed -i 's/\<index\.php\>/index.temp/g' dir.conf