はじめに
・色々なパターンの入力データをRubyプログラムに渡したい
・入力データはプログラムに直接書かずに、ファイルを分けておきたい
例えば、以下のようなファイルをRuby(test.rb)に渡して実行したいとすると
case1.txt
1,2,3,4...
case2.txt
a,b,c,d...
ターミナルで以下のコマンドを実行します。
cat case1.txt | test.rb
Ruby側はこのようにデータを受け取ります
test.rb
# 標準入力からデータを読み込む
input_data = $stdin.read
# 処理結果を標準出力に出力する
#puts input_data
# CSVデータが複数行ある場合は
# CSVデータを改行で分割し、各行を配列の要素として格納
input_data_line = input_data.split("\n")
ターミナルにコマンドを入力した際、エラーになる場合はこちらも試してみてください。
ruby test.rb < case1.txt
※ファイルは同じディレクトリに置いてください。
参考ページ