Ruby: cómo hacer coincidir una doble cita en una expresión regular
Pregunta
Estoy tratando de eliminar algunas comillas ( ") caracteres de un archivo de texto con un rubí un trazador de líneas, con poco éxito.
He intentado el siguiente, y algunas variaciones, sin éxito.
ruby -pe 'gsub(/\"/,"")' < myfile.txt
Esto me da el siguiente error:
-e:1: Invalid argument - < (Errno::EINVAL)
Me postulo Rubí en una máquina de victorias:
rubí 1.8.6 (2007-09-24 Patchlevel 111) [i386-mswin32]
¿Alguna idea?
Solución
Parece que cmd citando el infierno -. En cuenta que las comillas simples no tienen sentido en el shell cmd
ruby -pe "gsub(34.chr,'')" < filename
pero esto es probablemente mejor:
ruby -pe "$_.delete!(34.chr)" < filename
Otros consejos
¿Qué hay de:
ruby -e 'puts $stdin.read.gsub(34.chr,"")' <myfile.txt
ruby -pe 'gsub(/\"/,"")' myfile.txt
suena como el problema es con la cáscara.
Su mensaje de error es de Ruby, por lo que parece Rubí está recibiendo la <
como argumento. Esto significa que la cáscara no está haciendo ninguna redirección.
No tengo una máquina Windows a mano para que me vuelva a comprobar que usted está recibiendo el cambio de dirección a la derecha en primer lugar. A primera vista creo que el < myfile.txt
debe <myfile.txt