STDINでコマンドライン上でファイルを扱う

読み込むファイルや書き出すファイルはコマンドライン上で指定できます。

$ ruby test.rb < input.txt > output.txt

入力用のファイルは"<"で指定し、 出力先は">"で指定します。
これができると、ソースコード中にファイル名を書かなくていいので、わざわざ名前を書き換えたりしなくていいんですね〜。


では入力ファイルの各行を二倍にして書き換えるプログラムを考えてみましょう。

1
2
3
4
5

input.txt

row = STDIN.read.split("\n").map(&:to_i)

row.each do |i|
  puts i * 2
end

test.rb

STDIN.readによってinput.txtが読み込まれます(つまり"1\n2\n3\n4\n5\n"というstring)
この出力結果がoutput.txtに書き込まれます。

2
4
6
8
10

output.txt