岡田良介
9月 16, 2016

sed で 文字列マッチした行の後ろを全部変換する方法 メモ

単にこうすればよかっただけだ。(笑)

sed -e ‘s/^.*HOST.*$/HOSTNAME=hoge.jp/g’ /etc/sysconfig/network`;

 

以下ダメな例

 

/etc/sysconfig/network にあるホスト名を自動で変換する方法がなかなかわからなくて、色々調べた結果のメモ

(1)該当ファイルのHOSTを含む行だけを取り出して変数に代入する準備コマンド

`sed -ne ‘/HOST/,$p’ /etc/sysconfig/network`;

(2)変数にsed実行結果を格納

VAR1=`sed -ne ‘/HOST/,$p’ /etc/sysconfig/network`

(3)変数をつかってHOST名設定行をマッチさせて設定したいホスト名「HOSTNAME=www.king.jp」で再変換

VAR1=`sed -ne ‘/HOST/,$p’ /etc/sysconfig/network`;sed “s/$VAR1/HOSTNAME=www.king.jp/g” /etc/sysconfig/network

—–

いろいろ他にも使えそうなテクニックです。

以上