2013-12-12 61 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