sed将文件名视为模式?

时间:2013-12-12 15:41:06

标签: php macos apache bash sed

我有以下sed命令从index.php中注释掉phpinfo():

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 个答案:

答案 0 :(得分:2)

试试这个sed:

sudo sed -i.bak "s~phpinfo();~//phpinfo();~g" index.php
  • 较早的sed版本需要-i标志
  • 的文件扩展名
  • 最好使用替代正则表达式分隔符以避免转义/