もしかしたら GNU sedでも起きてるかも?
→起きぬ
事象
sed -i -e
でファイルの中身置換したら以下のようなバックアップファイルが作られてた
- ファイル名.ファイル拡張子-e (こっちは間違いない)
- .!nnnnn(数字)!.ファイル名.ファイル拡張子 (こっちはもしかしたら違うかも?でも他に心当たりない)
元のファイル→ファイル名.ファイル拡張子
例えば、
元のファイル↓
- index.php
作られたバックアップファイル↓
- index.php-e
- .!12345!index.php
両方とも作られた訳ではなかった。
原因
調べてみると、BSD版のsedで-iオプションするとバックアップファイルが作られるとのこと。
詳しくはqiitaの記事で。
gsed(つまり、GNU版)でやったつもりだったけど、シェルスクリプトでやったからBSD版が動いてたっぽい。
- シェルスクリプトでやったからか
- export LANG=C してからやったからか
いずれかだろうけど、詳細には原因追ってない。
対応
バックアップファイルを消した。
macの話だけどGNUもあるかもだから(動作確認せえや)linuxカテゴリにしとく。
→GNUだと大丈夫でした。-iオプションを付けてsedコマンドを実行しても、バックアップファイルは作成されませんでした。
コメント