निम्नलिखित कुछ चीजें हैं जो मुझे अस्पष्ट रूबी के संग्रह में मिली हैं।
तो, रूबी में, यूनिक्स कमांड का एक सरल नो-बेल कार्यान्वयन 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
प्रतिस्थापन के रूप में मिले। हालांकि अस्पष्ट है, यह वास्तव में उपयोगी साबित होता है। इस कार्यक्रम पर विचार करें, जो -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
फ़ाइल स्टड से जुड़ी हुई है ; शेल आपके लिए इसे प्रबंधित करता है।