A continuación se presentan algunas cosas que encontré en mi colección de Rubí oscuro.
Así, en Ruby, una sencilla aplicación no-campanas del comando Unix cat
sería:
#!/usr/bin/env ruby
puts ARGF.read
ARGF
es su amigo cuando se trata de la entrada; es un archivo virtual que obtiene todas las entradas de archivos con nombre o todo desde 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
Gracias a Dios que no tuvimos el operador de diamante en Ruby, pero conseguimos ARGF
como un reemplazo. Aunque oscuro, en realidad resulta útil. Considere este programa, que antepone los encabezados de derechos de autor en el lugar (gracias a otra Perlism, -i
) para cada archivo mencionado en la línea de comandos:
#!/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.
#++
crédito a:
Sólo una pequeña nota: las dos primeras líneas de comando que das son exactamente los mismos desde el punto de vista de 'myprog.rb': el' entrada.txt 'archivo está adjunto a _stdin_; el caparazón maneja esto para ti. – Mei
^^ esto a menudo se conoce como "uso inútil del gato", lo verá mucho. –
@SteveKehlet, sin embargo, creo que se conoce más astutamente como "abuso de gatos" – OneChillDude