我可以使用以下命令通过硬编码来改变目标值。
sed -ie s/^target=.*/target=google.com/ url.properties
但如果我使用变量我会收到错误。我不知道sed命令如何工作。我只需要设置它的构建系统。
url = google.com
sed -ie s/^target=.*/target=$url/ url.properties
错误是 sed:-e表达式#1,char 25:未终止的`s'命令
答案 0 :(得分:2)
问题可能正在发生,因为您的URL
可能包含/
,其中bash将其解释为sed语法,因此像https/www.google.com
这样的内容最终会像:
sed -ie 's/^target=.*/target=https/www.google.com/' url.properties
我建议分隔任何特殊字符以避免混淆sed
:
url=google.com
url=`echo $url | sed -e "s/\//\\\\\\\\\//g"` # delimits backslash in URL's
sed -ie "s/^target=.*/target=$url/" url.properties
答案 1 :(得分:0)
两个问题:
sed
命令(理想情况下也是网址)工作示例:
url="google.com"
sed -ie "s/^target=.*/target=$url/" url.properties