ต่อไปนี้เป็นบางสิ่งที่ฉันพบในคอลเล็กชันทับทิมที่ไม่ชัดเจน
ดังนั้นใน 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
ขอบคุณพระเจ้าที่เราไม่ได้รับผู้ประกอบการเพชรในทับทิม แต่เราได้รับ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 ; เชลล์จัดการสิ่งนี้ให้คุณ