Borrar una línea en un archivo de texto

Ok, traté de eliminar las líneas que contienen – de un archivo. El archivo se ve así:

----------------------------------------------------------------- Lorem ipsum.... Text..... 

Y mi código:

  f = File.open('C:\websites\ahr.txt') f.each_line do |line| if line.include? '-' a = line line.delete a end end f = File.close 

¡Pero no funcionará! Me sale este error:

  file.rb:5:in `delete': invalid range "-- (ArgumentError) " in string transliteration from file.rb:5:in `block in ' from file.rb:2:in `each_line' from file.rb:2:in `' 

¿Que esta pasando?

Como han dicho otros, puedes hacerlo con grep, pero si quieres hacerlo completamente en Ruby, entonces mira esta pregunta , la primera respuesta debería ayudarte.

Entonces, ¿qué está pasando?

Algo como esto:

 line = "-----------------------------------\n" => "-----------------------------------\n" a = line => "-----------------------------------\n" line.delete a ArgumentError: invalid range "-- " in string transliteration 

El error generado por el método de delete se debe a que los guiones se utilizan para la syntax de rango de caracteres especial:

 "hellob".delete "ae" => "hllo" 

Probablemente desee adoptar un enfoque diferente para resolver su objective, pero es difícil decir lo que quiere, ya que no muestra lo que quiere hacer con los datos una vez que se eliminan las líneas. Simplemente procesando la variable de line solo significa que tiene una String modificada en ese punto.