请教一个 shell sed 的问题

2018-10-10 11:32:02 +08:00
 rihoko
自己尝试和查询了很久奈何 sed 不是很熟用的太少,而且服务器环境固定不能使用其它发布语言,现在就是想用 sed 修改<soap:address location “ https:192.168.105.34 ” /> 冒号中间的值,如何写假定替换值是环境变量$url,多谢
1343 次点击
所在节点    程序员
8 条回复
araraloren
2018-10-10 11:43:05 +08:00
冒号??????
rihoko
2018-10-10 11:45:38 +08:00
@araraloren “”写错抱歉
rihoko
2018-10-10 11:46:09 +08:00
抱歉是“”中间的值
blankme
2018-10-10 11:46:40 +08:00
sed 用 double quotes 会自动扩展环境变量
export url="127.0.0.1"; sed -i "s/\".*\"/\"$url\"/g" yourfile
rihoko
2018-10-10 11:48:21 +08:00
@blankme 额不需要匹配么?文件中还有其它的键值对
blankme
2018-10-10 11:51:51 +08:00
@rihoko
需要匹配,你加入其他特征筛选就好了,比如 soap.*\".*\"
able
2018-10-10 11:52:07 +08:00
sed "s/\".*\"/\"$url\"/g"
rihoko
2018-10-10 11:56:45 +08:00
@blankme 也就是匹配项添加在 s/\中间吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/496239

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX