2014年7月22日火曜日

ruby one liner ルビーワンライナー ルビー1行プログラミングで仕事を効率化

One line ruby program makes work efficient.
ルビーワンライナー(1行ルビープログラム)で仕事の手間を減らしたい。
  • ruby -ne 'puts $_ if $_include ?("くるみ")' a.txt > o.txt
この1行プログラムを実行するためには、rubyをインストールが必要。そうすれば、a.txtというファイルを1行ずつ、読み出し、「くるみ」という文字列が含まれている(include)場合、その行を出力(puts)するというもの 。これが1行でかけるとは、凄い。

「くるみ」と言えば、少し前まであるTV番組の影響で、日本のスーパーでは「くるみ」が一斉に消えました。今は店頭に戻ってきたので、ひと安心。げに恐ろし、TVの力。

「くるみ」に加えて「いちじく」という文字列が含まれている行も取り出したい場合、
  • ruby -ne 'puts $_ if $_include?("くるみ")  or $_include?("いちじく") ' a.txt > o.txt
上記と同じプログラムをperlで書くこともできるけど、perlの場合、日本語でうまく認識できないものがあるので、いまいちとなる。日本生まれのrubyがいいところです。

0 件のコメント:

コメントを投稿