Sed分隔符选项

时间:2013-02-04 16:57:22

标签: sed delimiter

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

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

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

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

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

我尝试使用#代替/,但必须包含我不想要的内容 - \$

我可以使用哪种替代分隔符符合我的情况吗?

3 个答案:

答案 0 :(得分:1)

$由shell解释。使用'将整个参数包装到sed以防止这种情况发生。

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

答案 1 :(得分:0)

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

应该适合你。

请注意,第一个表达式中的$不是文献“dollar”,而是正则表达式,意思是行的结尾。

答案 2 :(得分:0)

sed -i 's#^variable = .*#variable = http://myaddress#'