更新配置文件的脚本

更新配置文件的脚本

我使用的是RHEL 7.0系统。我有这个 boot.cfg 文件,其中包含以下字段:

bootstate=0 title=加载 ESXi 安装程序超时=5 prefix=http://172.32.88.150/esxi65 内核=tboot.b00

kernelopt=运行weasel formatwithmbr

如何更新 boot.cfg 文件的 IP 地址?

我之前使用过以下脚本:

#!/bin/bash

sed '/[kernel=tboot.b00]/a [前缀=http://172.32.88.149/esxi65]/' 启动.cfg


我试图使用 sed 将更新后的 IP 地址附加到“内核...”字段的末尾。但它没有做出任何改变。

其次,如何确保IP地址的更改被保存而不是临时的?

提前致谢

答案1

输入文件

bootstate=0 title=Loading ESXi installer timeout=5 prefix=http://172.32.88.150/esxi65 kernel=tboot.b00

命令


sed -i  "s;kernel.*;&[prefix=http://172.32.88.149/esxi65];g" boot.cfg

执行上述命令后boot.cfg将如下

bootstate=0 title=Loading ESXi installer timeout=5 prefix=http://172.32.88.150/esxi65 kernel=tboot.b00[prefix=http://172.32.88.149/esxi65]

答案2

好吧,我找到了第二个问题的答案 http://brunolinux.com/02-The_Terminal/Find_and%20Replace_with_Sed.html

为了完全替换/更新前缀字段而不是附加较早的字段,需要“转义符”( \ )。修改后的代码如下:

sed -i 's;前缀.*;前缀=http://172.32.88.149/esxi65;g' boot.cfg

感谢 kumar 和上述网站的早期帮助!

相关内容