2013-12-12 28 views
2

我有以下sed命令从我的index.php注释掉的phpinfo():sed治疗文件名为模式?

sudo sed -i "s/phpinfo();/\/\/phpinfo();/g" index.php 

但它给我:

$ sudo sed -i "s/phpinfo();/\/\/phpinfo();/g" index.php 
sed: 1: "index.php": command i expects \ followed by text 

如果我试图指定的完整路径,它同样的事情:

sed: 1: "/Library/WebServer/Docu ...": invalid command code W 

我做错了什么?

+1

足见文件扩展名?怎么样?我编辑了我的问题,直接从bash复制它。逐字。 – NobleUplift

回答

2

试试这个sed的:

sudo sed -i.bak "s~phpinfo();~//phpinfo();~g" index.php 
  • 旧版本的sed需要-i标志
  • 最好使用一个替代的正则表达式的分隔符,以避免逃逸/
+0

工作正常!谢谢。 OS X的Unix端必须有点过时,因为这已经不是我第一次碰到过时的命令了。 – NobleUplift

+0

因为我在OSX上,所以我感觉到你的痛苦:)但是我也安装了自制软件和所有更新的gnu版本,例如gsed,gawk等。 – anubhava