HOME / コンピュータTips / スクリプト / 行の置き換えをawkで行う
Date: 2013/07/21 |
|
Tags: awk, 行の置き換え
シェルスクリプト中で設定ファイルを自動的に書き換えたいときに使うawkスクリプトサンプル。面倒なので同時性の問題は加味しない。
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が使えないときがたまにあるような気がするので、後で参考にするために備忘録入り・・・。