逃离sed搜索模式的路径

时间:2012-07-26 18:44:22

标签: regex shell unix sed

  

可能重复:
  sed, foward slash in quotes

在我的bash脚本中,我有一个路径字符串,我应该在sed模式中使用。

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

如何逃避$SRC_PATH字符串,以便sed作为文字替代品安全地接受它?

2 个答案:

答案 0 :(得分:5)

你无需逃避它。只需使用其他分隔符:

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

但您必须确保SRC_PATH不包含@(或其他符号,如果您选择它)。

答案 1 :(得分:0)

使用s%$OLDPATH%$NEWPATH%。您可以选择分隔符。如果%太危险,请考虑 Control-A