linux中想在脚本中实现修改一个ip地址参数的配置文件,用sed命令如何实现?

linux中想在脚本中实现修改一个ip地址参数的配置文件,如果用sed实现?如IP=192.168.0.55替换成IP=102.117.2.23还有其他方法吗?如awk?... linux中想在脚本中实现修改一个ip地址参数的配置文件,如果用sed实现?
如IP=192.168.0.55
替换成IP=102.117.2.23
还有其他方法吗?如awk?小弟能力有限,刚刚接触脚本,谢谢了
展开
 我来答
百度网友5311d79
2011-03-11 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3125万
展开全部
sed -i 's/\(IP=\)\S\S*/\1102.117.2.23/' filename

注:
1)将不变的部分放入带反斜杠的一对括号 \( \) 中并在替换时用 \1 引用。
2)\S用于匹配除单个空格符之外的所有字符。

awk -F"=" '{if($1=="IP")print("IP=102.117.2.23")}' filename > filename.new 2>/dev/null
mysunzone
2011-03-10 · 超过14用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:38.8万
展开全部
sed ‘s/192\.168\.0\.55/102\.117\.2\.23/g’ s是替换 g是全局的替换 .要转义 满意请采纳,谢谢 不满意请追问,共同探讨
追问
首先感谢你的帮助!
但是IP后面的具体ip地址是不确定的,因为是配置文件,所以想匹配到IP后就把后面的具体值替换。如果早知道具体值也不会这么麻烦
直接sed -i 's/192.*/102.117.2.23/' filename 不就可以了吗?
想用模糊匹配,比如IP=*,但是试了不行
追答
弄不好你那IP 还不是以192开头的呢,你可以用正则表达式把ip地址做一个匹配试试看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式