Sau đây là một số điều tôi tìm thấy trong bộ sưu tập của tôi che khuất Ruby.
Vì vậy, trong Ruby, một không-chuông đơn giản thực hiện các lệnh Unix cat
sẽ là:
#!/usr/bin/env ruby
puts ARGF.read
ARGF
là bạn của bạn khi nói đến đầu vào; nó là một tập tin ảo nhận tất cả các đầu vào từ các tập tin có tên hoặc tất cả từ 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
Cảm ơn lòng tốt, chúng tôi không có nhà điều hành kim cương trong Ruby, nhưng chúng tôi đã thay thế ARGF
. Mặc dù tối nghĩa, nó thực sự trở nên hữu ích. Hãy xem xét chương trình này, mà prepends tiêu đề bản quyền tại chỗ (nhờ một Perlism, -i
) cho mỗi tập tin được đề cập trên dòng lệnh:
#!/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.
#++
tín dụng đối với:
Chỉ cần một lưu ý nhỏ: hai dòng lệnh đầu tiên bạn cho là giống hệt nhau từ quan điểm của 'myprog.rb': 'cái INPUT.TXT 'tập tin được gắn vào _stdin_; vỏ quản lý điều này cho bạn. – Mei
^^ điều này thường được gọi là "sử dụng mèo vô dụng", bạn sẽ thấy điều đó rất nhiều. –
@SteveKehlet tuy nhiên tôi tin rằng nó được khéo léo gọi là "lạm dụng mèo" – OneChillDude