sedのオプションの続き

sedの前回の件(id:tamago_girai:20070101#p4)の続きの話。

きむらさんの提示されている案は二つあって、

  1. unix系のsedの仕様と同じく、 -iで指定なしの時には上書きする
  2. 引数なしの -i オプション指定がされたらエラーにする (現状のように実行後にエラーになるのでは×) そして、--overwriteオプションを新設し、それにより引数なしの -i オプション 指定時の動作を行うようにする。 (一文字で良いのが空いてるかどうか微妙)

一番元のsedの仕様に近いのはもちろん1.。2.は自分が前提案していた案を含めたかたち。

自分はおっちょこちょい*1なので、明示的に上書きするオプションがあればいいなあと思います。--overwriteが-iで指定なしと同等になるシンタックスシュガーかな。-iで指定なしをエラーにするのは元のsedの仕様ではないので、それもありでしょうね。1と2の間というか。

ただ、そうすると--overwriteと長いオプションを指定するのは大変なので、短い-iを使いそう(言ってることとやりそうなことが矛盾してるな)。それと元のsedには無いのに、いかにも元のsedからありそうな名前のオプションが付け加わるというのはちょっと気持ちが悪いですね。さらに --overwriteオプションのコードは元のsedのソースにはもちろん無いので、きむらさんの移植のスタンスの両方に抵触してますね。--overwriteは結局あまり良くないかも。

というように選択肢のそれぞれについて考えてみたのですが、自分としてもきむらさんが最初に提示された案がもっとも良いと納得しました。

  • -iを元のsedと同等にする

に賛成です。すいません、なんか長ったらしくて。(記述方法が論文式の試験みたいだな)

*1:大学一年の時ににあやまってホームディレクトリで'rm -fr * 'した。CNSの人のところ行って直してもらえたけど一瞬頭がパニックになった。