Help us understand the problem. What is going on with this article?

定番!Rubyでワンライナー書く時の基本テク

More than 5 years have passed since last update.

ruby -e scriptを使うことで、ワンライナーを書くことができます。

http://docs.ruby-lang.org/ja/2.0.0/doc/spec=2frubycmd.html#cmd_option

アドホックな調べ物やフィルタ用途に便利なので日頃からよく使っています。
ただ、そのわりに案外書き方をド忘れてしがちなので、改めてまとめておきたくなりました。

標準出力に吐き出す

お馴染み、Kernel.#puts を使います。

http://docs.ruby-lang.org/ja/2.0.0/method/Kernel/m/puts.html

エラー出力に吐き出す

Kernel.#warn を使います。

http://docs.ruby-lang.org/ja/2.0.0/method/Kernel/m/warn.html

requireほげほげって書くの面倒臭い

-rオプションを使います。複数指定できます。

例えば、jsonとopen-uriをrequireして使う場合。

ruby -rjson -ropen-uri -e 'puts open("http://example.com").read.to_json'

引数を取る

Object::ARGVを使います

http://docs.ruby-lang.org/ja/2.0.0/method/Object/c/ARGV.html

標準入力から読み込んで1行ずつ順繰りに処理する

例えば、標準入力から読み込んで1行ずつ順繰りにputsする場合

STDIN.each {|line| puts line }

Object::STDIN定数については http://docs.ruby-lang.org/ja/2.0.0/method/Object/c/STDIN.html を参照してください。

どうしても複数行書きたい。ワンライナーとは何だったのか。

;で区切る

puts 'hoge'; puts 'huga'; puts 'piyo'
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした