2017-07-17 10 views
0

を置き換える:検索と置換検索にスラッシュで再帰的にフォルダ内の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

「再帰的」とはどういう意味ですか?あなたの例は、1つのファイルだけを変更するように見えます。これをカレントディレクトリ下のすべてのファイルに適用しますか?または、おそらくすべてのPHPファイル?その場合は、[ツール](https://stackoverflow.com/posts/45141398/edit)を編集し、好みのシェルとオペレーティングシステムを含めてください。ツールは異なる場合があります。 – ghoti

答えて

1

スラッシュを置換コマンドの区切り文字として使用する場合は、パターンまたは置換内のバックスラッシュをエスケープする必要があります。

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

しかし、Sedの置換コマンドでは、任意の文字を区切り文字として使用できます。同じコマンドは、として読みやすいかもしれません:スラッシュへ

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

一般的な選択肢は、コロン(:)、コンマ(,)と垂直バー(|)が、任意の文字を行います含まれています。 sedのmanページから:

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

関連する問題