0

在我的代码中,我需要用地址替换变量赋值:

sed -i "s/^variable = .*$/variable = http://myaddress/"

显然,这不起作用,因为地址中的正斜杠在 sed 命令中被识别。

我想保留$第一个表达式的末尾,以便将任何内容替换到行尾。我也不想这样逃避美元符号,\$因为它会搜索美元符号。

另外,我不想只是转义地址中的正斜杠,因为地址的某些地方也有变量。

我尝试使用#而不是,/但必须包含我不想包含的内容 - \$.

是否有适合我情况的替代分隔符?

4

3 回答 3

1

$由您的外壳解释。将整个参数包装到 sed'以防止这种情况发生。

sed -i 's#^variable = .*$#variable = http://myaddress#'
于 2013-02-04T17:01:32.370 回答
0
sed -i "s@^variable = .*$@variable = http://myaddress@" file

应该为你工作。

请注意,$第一个表达式中的不是文学“美元”,而是一个正则表达式,表示行尾。

于 2013-02-04T17:03:04.933 回答
0
sed -i 's#^variable = .*#variable = http://myaddress#'
于 2013-02-04T19:47:21.410 回答