標準入力を処理するプログラムを書く
ARGFは引数がなければ標準入力からデータを読み込むので、これを使うのが楽なのかな?IOオブジェクト派生?なので、readとかgetsが使えます。以下は、標準入力のデータをBase64でエンコードして出力するフィルタの例です。
#!/bin/ruby puts [ARGF.read].pack("m")
使い方。
$ cat ./text.txt | ./ base64.rb
実行結果です。
YWFh
組み込み関数のgetsはARGFからデータを読む関数なので、こんな感じで各行を処理したりできます。
#!/bin/ruby # 標準入力の各行に「--」を付けて出力する。 while line = gets puts "-- " + line end
使い方。
$ cat ./text.txt | ./insert_line.rb
実行結果です。
-- aaa -- bbb -- ccc