Por favor, perdone mi ignorancia, soy nuevo con Ruby.Ruby: buscando una expresión regular a través de múltiples archivos en múltiples directorios
sé cómo buscar una cadena, o incluso un solo archivo con una expresión regular:
str = File.read('example.txt')
match = str.scan(/[0-9A-Za-z]{8,8}/)
puts match[1]
sé cómo buscar una frase estática en varios archivos y directorios
pattern = "hello"
Dir.glob('/home/bob/**/*').each do |file|
next unless File.file?(file)
File.open(file) do |f|
f.each_line do |line|
puts "#{pattern}" if line.include?(pattern)
end
end
end
No puedo entender cómo usar mi expresión regular contra múltiples archivos y directorios. Cualquier ayuda es muy apreciada.
Muchas gracias por la respuesta. Tengo problemas para mostrar los resultados de la búsqueda de expresiones regulares. Supongo que el comando "puts" mostrará los datos coincidentes con la expresión regular correcta. – roobnoob
Ah, imprimí la línea porque pensé que sería más útil. Actualizaré mi respuesta. – wuputah
Muchas gracias por esto. Obtengo una 'coincidencia ': secuencia de bytes no válida en UTF-8 (ArgumentError). Sé que esto no tiene nada que ver con mi pregunta original. Investigaré este nuevo problema. ¡Gracias por responder mi pregunta original! – roobnoob