2017-07-17 30 views
0

我想用sed命令與/home/lokesh/www更換/var/www發現並在文件夾中的sed遞歸在查找斜線取代和替換字符串

sed -i 's/\//var\//www/\//home\//lokesh\//www/g' lks.php 

但是這給出了一個錯誤:

sed: couldn't open file ww/\//home\//lokesh\//www/g: No such file or directory 
+0

你是什麼意思的「遞歸」?您的示例似乎只更改一個文件。你想把它應用到當前目錄下的所有文件嗎?或者也許所有的PHP文件?如果是這樣,請[編輯您的問題](https://stackoverflow.com/posts/45141398/edit),幷包括您首選的外殼和操作系統,因爲工具可能有所不同。 – ghoti

回答

1

如果使用正斜槓作爲sed的替換命令的分隔符,那麼您需要在模式或替換內部轉義反斜槓:

sed -i 's/\/var\/www\//\/home\/lokesh\/www\//g' lks.php 

但是Sed的替換命令可以使用任何字符作爲分隔符。同樣的命令可能會更容易爲已讀:

sed -i 's:/var/www/:/home/lokesh/www/:g' lks.php 

以斜線常見的備選方案包括冒號(:),逗號(,)和豎線(|),但任何字符都行。從sed手冊頁:

Any character other than backslash or newline can be used instead of a slash to delimit the RE and the replacement.

相關問題