以下は、あいまいなRubyのコレクションで見つけたものです。
したがって、Rubyでは、Unixコマンドの単純なノーベル実装は次のcat
ようになります。
#!/usr/bin/env ruby
puts ARGF.read
ARGF
入力に関してはあなたの友達です。名前付きファイルまたはSTDINからすべての入力をすべて取得する仮想ファイルです。
ARGF.each_with_index do |line, idx|
print ARGF.filename, ":", idx, ";", line
end
# print all the lines in every file passed via command line that contains login
ARGF.each do |line|
puts line if line =~ /login/
end
Rubyでdiamond演算子を取得できませんでしたがARGF
、代わりに取得できました。あいまいではありますが、実際には便利です。-i
コマンドラインで言及されているすべてのファイルに、著作権ヘッダーを(別のPerlismのおかげで)インプレースで付加するこのプログラムを考えてみます。
#!/usr/bin/env ruby -i
Header = DATA.read
ARGF.each_line do |e|
puts Header if ARGF.pos - e.length == 0
puts e
end
__END__
#--
# Copyright (C) 2007 Fancypants, Inc.
#++
クレジット:
myprog.rb
:input.txt
ファイルが添付されてSTDIN ; シェルがこれを管理します。