1

重複の可能性:
sed、引用符で囲まれたスラッシュ

私の bash スクリプトには、sedパターンで使用するパス文字列があります。

SRC_PATH="$PWD"
sed "s/<SRC_PATH>/$SRC_PATH/g" template.sh > replaced.sh

$SRC_PATHsed がリテラル置換として安全に受け入れられるように、文字列をエスケープするにはどうすればよいですか?

4

2 に答える 2

5

逃げる必要はありません。他の区切り文字を使用してください:

sed "s@<SRC_PATH>@$SRC_PATH@g" template.sh > replaced.sh

ただし、SRC_PATH に@(または選択した場合は他のシンボルが) 含まれていないことを確認する必要があります。

于 2012-07-26T18:52:37.033 に答える
0

を使用しs%$OLDPATH%$NEWPATH%ます。区切り文字を選択できます。%危険すぎる場合は、Control-A代わりに検討してください。

于 2012-07-26T18:52:03.110 に答える