2013-12-12 2 views
2

У меня есть следующие команды, чтобы патч в закомментировать phpinfo() из моего index.php: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. Verbatim. – NobleUplift

ответ

2

Попробуйте СЭД:

sudo sed -i.bak "s~phpinfo();~//phpinfo();~g" index.php 
  • Старые версии SED необходимо расширение файла с -i флагом
  • Лучше использовать альтернативный регулярок разделитель, чтобы избежать побега /
+0

Это сработало! Спасибо. Unix-конец OS X должен быть немного устаревшим, потому что это не первый раз, когда меня ударила устаревшая команда. – NobleUplift

+0

Я чувствую вашу боль, поскольку я тоже на OSX :), но я также установил homebrew и все новые версии gnu, такие как gsed, gawk и т. Д. – anubhava

Смежные вопросы