行の置き換えをawkで行う

かんたん編集ウェブサイト(ホームページ)WIKIPLUS かんたん編集ウェブサイト(ホームページ)WIKIPLUS

安くかんたんに編集できるウェブサイトを本気で作りたい人」のために、本気になって考えて作りました。体験アカウントは無料なので試して見てください。ご意見募集中です! ご意見を「@kohju」あてに是非 :)



zfsに関する世界で初めて出版された本。 ストレージが好きなら、Solaris使いでなくても必ず読むべき。


お品書き

コンテンツ

ツリー表示:開く | 閉じる


保存庫

ホットリンク

HOME / コンピュータTips / スクリプト / 行の置き換えをawkで行う

行の置き換えを、awkで行う。

シェルスクリプト中で設定ファイルを自動的に書き換えたいときに使うawkスクリプトサンプル。面倒なので同時性の問題は加味しない。

  • Perlに依存したくないシェルスクリプト
  • ファイル中に
    • 正規表現でマッチした行があれば、リプレース
    • なければ、最後に追加する。
ALIAS=/etc/mail/aliases
cat ${ALIAS} |\
    awk '                                                                                      
{                                                                                              
    if( $0 ~ /^root:/){                                                                        
        print "root: xxxx[-at-]example.com";                                                 
        rp=1;                                                                                  
    } else {                                                                                   
        print;                                                                                 
    }                                                                                          
}                                                                                              
END{                                                                                           
    if(rp != 1)                                                                                
        print "root: xxxx[-at-]example.com"                                                  
}                                                                                              
'>> ${ALIAS}.new && mv ${ALIAS} ${ALIAS}.bak && mv ${ALIAS}.new ${ALIAS}

追記

これを、備忘録いりしたのにはワケがあります。

理由は、結局、思ったよりも長くなってしまったり、同じ文字が何回も出てくるので使いづらかったからです。

Perlではもう少し抽象化したものを前に作ってあって、結局、これを作った上で、今回もそのPerlプログラムを使うに至りました。

とはいえ。

どうしてもPerlが使えないときがたまにあるような気がするので、 後で参考にするために備忘録入り・・・。

Get RSS

カレンダー
<< 2012.5 >>
[日記]
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Twitter

最新情報
Nakanohito
Copyright Kohju / TAKI, Yasushi http://kohju.justplayer.com/ - Design by Casafree.com