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

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

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

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

「sedを使ってファイルの中身を置換する」への1件のフィードバック

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

コメントを残す