角待ちは対空

おもむろガウェイン

sedとperlと部屋とワイシャツと私

MacOSのsed-iオプションのあとに空文字を指定しても(-i'')in-place(上書き)にしつつバックアップファイルは作らないみたいな動作はできない。

sed -i'' -e 's/foo/bar/' test.txt

するとtest.text-eというファイルができて辛い。ちなみに''がなくてもだめ

対してperl

perl -i -pe 's/foo/bar/' test.txt

で期待した挙動になる。

やっぱperlやな!とおもったら

sed -i '' -e 's/foo/bar/' test.txt

のようにスペースを空けると上書きしつつバックアップは取らないとう挙動になる。

-i extension Edit files in-place, saving backups with the specified extension. If a zero-length extension is given, no backup will be saved. It is not recommended to give a zero-length extension when in-place editing files, as you risk corruption or partial content in situations where disk space is exhausted, etc.

特にマニュアルにはスペース開けろって書いてない気がする。-i'.backup' がいけるのでいけると思ってた。

なにはともあれsedには後で謝っておこうと思いました。

blog.yux3.net

年内には埋めたいという気持ちでやってます。