sedを使ってファイルの中身を置換する

sedを使ってファイルの中身を置換したかった。
ヒトクセあるsedだけどコマンドラインでさっくり置換してくれるのは魅力。
置換となるとファイルの中身を書き換えて欲しかったりするんだけどファイル自身を書き換えるときのオプションを調べたのでメモ。二回目なのでメモ。忘れていたのでメモ。

FreeBSDはオプションがLinuxなどの GNU sed と違うらしい。ファイル自身を書き換えるオプションがGNU sedなら-iでいける。でもFreeBSDであれば-iは引数を伴いそのファイル名で出力する、というものなのだ。で、ファイル自身に書き出したいときにはシングルクォートで引数に空文字を渡してやればそれ自身を書き換えることができる。めもめも。

shell> sed -i '' 's/hoge/fuga/g' inputfile

この投稿へのコメント

  1. Yousan_O said on 2013年2月4日 at 17:03

    オマケ
    zabbixのデフォルトコンフィグでhostnameをそれ自身に設定するsed
    sudo sed ‘s/Hostname=Zabbix server/Hostname=’`hostname`’/1’ zabbix_agentd.conf

コメントを残す

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL