linux中想在脚本中实现修改一个ip地址参数的配置文件,如果用sed实现?
如IP=192.168.0.55
替换成IP=102.117.2.23
还有其他方法吗?如awk?小弟能力有限,刚刚接触脚本,谢谢了
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
注:
1)将不变的部分放入带反斜杠的一对括号 \( \) 中并在替换时用 \1 引用。
2)\S用于匹配除单个空格符之外的所有字符。
awk -F"=" '{if($1=="IP")print("IP=102.117.2.23")}' filename > filename.new 2>/dev/null
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-03-10
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地址做一个匹配试试看。