我使用的是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 和上述网站的早期帮助!