読者です 読者をやめる 読者になる 読者になる

マジコメるためのrubyワンライナー

Ruby

naruseさん、ebanさん、akrさんから教えてもらった技を組み合わせて
駆使したワンライナー

ruby -p -i -0777 -e '$_.insert(0,"# vim:fileencoding=UTF-8\n")' **/*.rb

やはり、rubyistなんだからsedを使うのは良くないと思い、
研究しました。 -p -i で$_を破壊的に変更すると、
それがそのままファイルに反映します。
getsで入力ファイルが1行ずつ評価されます。
-0777を指定すると入力コードセパレータが指定されないので、
getsでファイルまるごと読み込みます。
ですので、$_の最初にinsertすると、1行目にマジコメられます。
さて、先日のsedですが、

gsed -i '1s/.*/# vim:fileencoding=UTF-8\n&/' **/*.rb

ですので、長さとしてはまあまあではないでしょうか。