RHEL 7.0システムを使用しています。次のフィールドを含むboot.cfgファイルがあります。
bootstate=0 title=ESXi インストーラの読み込み中のタイムアウト=5 プレフィックス=http://172.32.88.150/esxi65 カーネル=tboot.b00
kernelopt=mbr を使用してイタチ形式を実行する
boot.cfgファイルのIPアドレスをどのように更新しますか?
以前は次のスクリプトを使用していました。
#!/bin/bash
sed '/[kernel=tboot.b00]/a [プレフィックス=http://172.32.88.149/esxi65]/'start.cfg
更新されたIPアドレスを「カーネル...」フィールドの末尾に追加するためにsedを使用しようとしています。しかし、何の変化もなかった。
第二に、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
まあ、2番目の質問に対する答えを見つけました http://brunolinux.com/02-The_Terminal/Find_and%20Replace_with_Sed.html
前のフィールドを追加するのではなく、プレフィックスフィールドを完全に置き換えたり更新したりするには、「エスケープ文字」(\)が必要です。修正されたコードは次のとおりです。
sed -i 's;prefix.*;prefix=http://172.32.88.149/esxi65;g' boot.cfg
早く助けてくれたkumarと上記のウェブサイトに感謝します!