使用sed

时间:2019-08-05 12:59:30

标签: sed replace

我有一个文件,我需要使用以下值将src字符串以下的内容替换为dst字符串。

src="59/291259.wav"
dest="58/291258.wav"

echo "source string= $src    replacement string= $dest"

我正在尝试使用sed命令,但是却遇到了错误。谁能帮上忙。

sed -i "s/$src/$dest/g" test.xml

错误: sed:-e表达式#1,字符19:`s'的未知选项

2 个答案:

答案 0 :(得分:3)

Sed对字符串中的斜线感到困惑。尝试使用其他定界符:

sed -i "s|$src|$dest|g" test.xml

答案 1 :(得分:-1)

如果使用Bash,则用反斜杠前缀替换斜杠:

sed -i "s/${src//\//\\/}/${dest//\//\\/}/g" test.xml

这比尝试在变量中查找“不可能出现”的替代定界符更加可靠。

您可能希望替换其他sed有意义的字符,例如&中的$dest和两者中的\本身。