perldoとrubydoによるフィルタリング処理はズルイと思うほど便利。
昨日はpythonを使ったフィルタ処理を紹介したので、
perlとrubyを使ったやり方も説明しましょう。
perldoによるフィルタリング
まず、フィルタリングにperlを使用する方法から
perlにはperldoというフィルタリグ用コマンドがあって、このコマンドを使うと楽。
:'<,'>perldo $_ = "test" . $_
pythonだと、↓ここまで書かなきゃできなかった選択範囲テキスト置換が
:'<,'>python current.range[:] = ["test" + i for i in current.range]
なんと、たった↓これだけ。これだけで出来てしまいました。
:'<,'>perldo $_ = "test" . $_
素晴らしい。
perldoの処理で、$_を置き換えると、各行のテキストも置き換わる。
さすがは、短く美しく書けることには定評のあるperl言語です。
こんなに短く処理できると、vimエディタの正規表現による置換処理の代替選択肢にもなりますね。
↓サンプル程度の処理なら、大した差はないですけど、
:'<,'>s/^/test/
CSVの5番目、6番目の間にテキスト追加する、とかやろうとしたら、
vimエディタの正規表現で置き換えるより、perldoの方が楽っぽいでしょう?
rubydoによるフィルタリング
rubyにも、perlのperldoと同じような機能をもつ、rubydoコマンドがあります。
:'<,'>rubydo $_ = "test" + $_
rubyもらくらくフィルタリング処理できますね。