1

我有 2 个变量

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

我试过这个命令,但它不会替换文件中的字符串

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

你能帮忙吗?

4

2 回答 2

0

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

试试这种方式:

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

那么你的 sed one-liner 应该可以正常工作。

测试:

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
于 2013-05-24T11:26:35.837 回答
0

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

mypath='c:\\tmp\\silent-install'
于 2013-05-24T11:28:51.840 回答