在我的代码中,我需要用地址替换变量赋值:
sed -i "s/^variable = .*$/variable = http://myaddress/"
显然,这不起作用,因为地址中的正斜杠在sed命令中被识别。
我想将$
保留在第一个表达式的末尾,以便将任何内容替换为行尾。我也不想逃避美元符号\$
,因为它会搜索一个美元符号。
另外,我不想只是转义地址中的正斜杠,因为地址的某些地方也有变量。
我尝试使用#
代替/
,但必须包含我不想要的内容 - \$
。
我可以使用哪种替代分隔符符合我的情况吗?
答案 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#'