如何使用cygwin中的sed替换文件中的路径字符串

时间:2013-05-24 11:19:13

标签: bash

我有2个变量

mypath=c:\tmp\silent-install
replace=c:/tmp/myapp

我尝试了这个命令,但它没有替换文件中的字符串

sed -i "s#$mypath#$replace#" file.txt

你能帮忙吗?

2 个答案:

答案 0 :(得分:0)

mypath变量赋值有问题,因为你的字符串有反斜杠。

尝试这种方式:

mypath='c:\\tmp\\silent-install'

然后你的sed单行应该可以正常工作。

TEST:

kent$  mypath='c:\\tmp\\silent-install'

kent$  replace=c:/tmp/myapp

kent$  cat file
c:\tmp\silent-install

kent$  sed -i "s#$mypath#$replace#" file

kent$  cat file
c:/tmp/myapp

答案 1 :(得分:0)

将您的第一个变量更改为:

mypath='c:\\tmp\\silent-install'