【发布时间】:2012-07-25 10:24:30
【问题描述】:
在我的 bash 脚本中,我有一个路径字符串,我应该在 sed 模式中使用它。
SRC_PATH="$PWD"
sed "s/<SRC_PATH>/$SRC_PATH/g" template.sh > replaced.sh
如何转义 $SRC_PATH 字符串,以便 sed 安全地接受它作为文字替换?
【问题讨论】:
在我的 bash 脚本中,我有一个路径字符串,我应该在 sed 模式中使用它。
SRC_PATH="$PWD"
sed "s/<SRC_PATH>/$SRC_PATH/g" template.sh > replaced.sh
如何转义 $SRC_PATH 字符串,以便 sed 安全地接受它作为文字替换?
【问题讨论】:
使用s%$OLDPATH%$NEWPATH%。您可以选择分隔符。如果% 太危险,请考虑Control-A。
【讨论】:
你不必逃避它。只需使用其他分隔符:
sed "s@<SRC_PATH>@$SRC_PATH@g" template.sh > replaced.sh
但您必须确保 SRC_PATH 不包含 @(或其他符号,如果您选择的话)。
【讨论】: