Shell脚本用变量linux替换字符串

我试图用包含ex的变量替换“ c:\ abacd”之类的字符串。 Shell脚本中的v_var =“ e:\ abcd”。但以下代码无法正常工作。

sed -i“ s + c:\ abcd + $ {v_var} + g”〜/ test.txt

但是,我可以使用下面的cmd成功地用文件中包含v_rest =“ rest”的变量替换其他简单单词,例如“ test”。我正在使用变量

sed -i“ s + test + $ {v_rest} + g”〜/ test.txt

评论
  • 忧郁逗比
    忧郁逗比 回复

    use c:\\\\ instead of just c:\, to escape the backslash.

  • [呛人心]
    [呛人心] 回复

    这为我工作:

    export v_var="e:\\\\abcd"
    sed -i "s/c:\\\\abcd/${v_var}/g" ~/test.txt
    

    您需要在命令行和变量中转义“ \”。