我有一个文件,我需要使用以下值将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'的未知选项
答案 0 :(得分:3)
Sed对字符串中的斜线感到困惑。尝试使用其他定界符:
sed -i "s|$src|$dest|g" test.xml
答案 1 :(得分:-1)
如果使用Bash,则用反斜杠前缀替换斜杠:
sed -i "s/${src//\//\\/}/${dest//\//\\/}/g" test.xml
这比尝试在变量中查找“不可能出现”的替代定界符更加可靠。
您可能希望替换其他sed有意义的字符,例如&
中的$dest
和两者中的\
本身。