Нижче наведено кілька речей, які я знайшов у своїй колекції незрозумілого Рубі.
Отже, в Ruby проста реалізація команди, 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
Слава богу, що ми не отримали алмазного оператора в Рубі, але отримали ARGF
як заміну. Хоч і незрозуміло, воно насправді виявляється корисним. Розглянемо цю програму, яка випереджає заголовки авторських прав на місці (завдяки іншому Perlism -i
) для кожного файлу, згаданого в командному рядку:
#!/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 ; оболонка управляє цим для вас.